Java:如何读取文本文件

Java:如何读取文本文件

我想读取一个包含空格分隔值的文本文件。值是整数。我如何读取它并将其放入数组列表中?

以下是文本文件内容的示例:

1 62 4 55 5 6 77

我想把它列成[1, 62, 4, 55, 5, 6, 77]..我如何在Java中做到这一点?



qq_遁去的一_1
浏览 333回答 3
3回答

翻翻过去那场雪

你可以用Files#readAllLines()将文本文件的所有行放入List<String>.for&nbsp;(String&nbsp;line&nbsp;:&nbsp;Files.readAllLines(Paths.get("/path/to/file.txt")))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;...}教程:基本I/O>文件I/O>读取、写入和创建文本文件你可以用String#split()劈开String在基于正则表达式的部分中。for&nbsp;(String&nbsp;part&nbsp;:&nbsp;line.split("\\s+"))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;...}教程:数字和字符串>处理字符串中的字符你可以用Integer#valueOf()转换为String变成Integer.Integer&nbsp;i&nbsp;=&nbsp;Integer.valueOf(part);教程:数与串>数与串之间的转换你可以用List#add()若要将元素添加到List.numbers.add(i);教程:接口>列表接口因此,简单地说(假设文件没有空行或尾随/前导空格)。List<Integer>&nbsp;numbers&nbsp;=&nbsp;new&nbsp;ArrayList<>();for&nbsp;(String&nbsp;line&nbsp;:&nbsp;Files.readAllLines(Paths.get("/path/to/file.txt")))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(String&nbsp;part&nbsp;:&nbsp;line.split("\\s+"))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;i&nbsp;=&nbsp;Integer.valueOf(part); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numbers.add(i); &nbsp;&nbsp;&nbsp;&nbsp;}}如果您碰巧已经在Java 8,那么您甚至可以使用流API为此,从Files#lines().List<Integer>&nbsp;numbers&nbsp;=&nbsp;Files.lines(Paths.get("/path/to/test.txt")) &nbsp;&nbsp;&nbsp;&nbsp;.map(line&nbsp;->&nbsp;line.split("\\s+")).flatMap(Arrays::stream) &nbsp;&nbsp;&nbsp;&nbsp;.map(Integer::valueOf) &nbsp;&nbsp;&nbsp;&nbsp;.collect(Collectors.toList());教程:用Java 8流处理数据

aluckdog

Java 1.5引入了扫描器类处理来自文件和流的输入。它用于从文件中获取整数,如下所示:List<Integer>&nbsp;integers&nbsp;=&nbsp;new&nbsp;ArrayList<Integer>();Scanner&nbsp;fileScanner&nbsp;=&nbsp;new&nbsp;Scanner(new&nbsp;File("c:\\file.txt"));while&nbsp;(fileScanner.hasNextInt()){ &nbsp;&nbsp;&nbsp;integers.add(fileScanner.nextInt());}不过,请检查API。处理不同类型的输入源、不同的分隔符和不同的数据类型有更多的选项。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java