我想使用Stream读取由newLines分隔的多个Integer。我当然知道如何使用扫描仪来做到这一点,但是我尝试找出流。 我的输入将是许多整数,第一个整数n将决定要跟随的行数。
5
1
2
3
4
5
我对InputStreamReader的用途感到困惑。 我可以使用它来读取用户的输入吗?它确实具有读取的方法及其重载版本。我以为我可以使用重载方法将值保存到数组中,然后对其求和,求出平均值,等等。但这
try(InputStreamReader isr = new InputStreamReader(System.in)){
int n = isr.read();
int count =0;
isr.read(char[] cbuf, 0, n);
}
不起作用。您可能会发现,我是流媒体的新手。通常,我会与正在阅读的书(Ivor Horton“ Beginning Java”)相处融洽,这是其他人在这里问过的Java文档和资料,但这次不是。我一直找不到合适的教程或任何东西,可能是因为我不知道我的确切问题是什么。 我会很感激,但也提供有用的链接或文献。 路易斯
答案 0 :(得分:2)
您可以使用BufferedReader
,它为您提供类似于readLine()
的{{1}}方法:
Scanner.nextLine()
答案 1 :(得分:0)
方法Files.readAllLines从文件中读取数据,并返回一个字符串列表,每行一个,可以轻松地将其转换为实际的Stream。要从文件中读取所有数字并进行打印,代码可以很简单:
Files.readAllLines(Paths.get("data.txt")).stream().forEach(System.out::println);
请注意,此方法声明抛出IOException
,该陷阱必须被捕获或声明。如果数字的打印顺序很重要,则可以使用方法forEachOrdered
。