Java 如何使用流读取由换行符分隔的整数?

Java 如何使用流读取由换行符分隔的整数?,java,stream,Java,Stream,我想用Stream读取由换行符分隔的多个整数。我当然知道如何使用扫描仪,但我试着找出数据流。 我的输入将是一些整数,第一个整数n将决定要跟随多少行 5 1 2 3 4 五, 我对InputStreamReader的用途感到困惑。 我可以用它来读取用户的输入吗?它确实读取了该方法,并且重载了该方法的版本。我想我可以使用重载方法将值保存到一个数组中,然后将它们相加,找到平均值等等。但是这个 try(InputStreamReader isr = new InputStreamReader(Syste

我想用Stream读取由换行符分隔的多个整数。我当然知道如何使用扫描仪,但我试着找出数据流。 我的输入将是一些整数,第一个整数n将决定要跟随多少行

5
1
2
3
4
五,

我对InputStreamReader的用途感到困惑。 我可以用它来读取用户的输入吗?它确实读取了该方法,并且重载了该方法的版本。我想我可以使用重载方法将值保存到一个数组中,然后将它们相加,找到平均值等等。但是这个

try(InputStreamReader isr = new InputStreamReader(System.in)){
        int n = isr.read();
        int count =0;
        isr.read(char[] cbuf, 0, n);

    }
它不起作用。正如你可能会想到的那样,我对streams完全陌生。通常情况下,我与我正在阅读的书(Ivor Horton“开始Java”)相处融洽,Java文档和其他人在这里询问的东西,但这次不行。我一直找不到合适的教程或任何东西,可能是因为我不知道我的确切问题是什么。 我很感激任何解释,但有帮助的链接或文学以及。 Louis

您可以使用它提供类似于扫描器的
readLine()
方法。nextLine():


使用
扫描仪
怎么样?每次调用
isr.read()
只会得到一个字母,其中数字是输入字符的ASCII或Unicode。简而言之,这是一个非常低级的界面,除非出于兴趣,否则可能不值得使用。谢谢。2个问题:1。readLine()将返回一个字符串。若要使用流对这些数字进行进一步计算,是否最好返回一个流?2.缓冲读取器只是将InputStreamReader的字符流更改为文本吗?所以它只是让一切都更容易处理?
public static void main(String[] args) throws Exception {
    try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
        int n = Integer.parseInt(reader.readLine());
        System.out.println(n);
        while (n-- > 0) {
            int i = Integer.parseInt(reader.readLine());
            System.out.println(i);
        }
    }
}