Java:如何读取文本文件
我想读取一个包含空格分隔值的文本文件。值是整数。如何读取并将其放入数组列表?
这是文本文件内容的示例:
1 62 4 55 5 6 77
我想将它包含在arraylist中[1, 62, 4, 55, 5, 6, 77]
。如何用Java做到这一点?
回答:
你可以用来Files#readAllLines()
将文本文件的所有行都放入List<String>
。
for (String line : Files.readAllLines(Paths.get("/path/to/file.txt"))) { // ...
}
教程:基本I / O>
文件I / O>
读取,写入和创建文本文件
你可以用来基于正则表达式String#split()
拆分a String
部分。
for (String part : line.split("\\s+")) { // ...
}
教程:数字和字符串>字符串>操纵字符串中的字符
你可以使用Integer#valueOf()
将转换String
为Integer
。
Integer i = Integer.valueOf(part);
教程:数字和字符串>字符串>在数字和字符串之间转换
你可以使用List#add()
将元素添加到中List
。
numbers.add(i);
教程:接口>列表接口
因此,简而言之(假设文件没有空行,也没有尾随/前导空格)。
List<Integer> numbers = new ArrayList<>();for (String line : Files.readAllLines(Paths.get("/path/to/file.txt"))) {
for (String part : line.split("\\s+")) {
Integer i = Integer.valueOf(part);
numbers.add(i);
}
}
如果你碰巧已经使用Java 8,那么你甚至可以为此使用Stream APIFiles#lines()。
List<Integer> numbers = Files.lines(Paths.get("/path/to/test.txt")) .map(line -> line.split("\\s+")).flatMap(Arrays::stream)
.map(Integer::valueOf)
.collect(Collectors.toList());
以上是 Java:如何读取文本文件 的全部内容, 来源链接: utcz.com/qa/418455.html