gpt4 book ai didi

Java:如何读取文本文件

转载 作者:IT老高 更新时间:2023-10-28 11:42:03 25 4
gpt4 key购买 nike

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

这是文本文件内容的示例:

1 62 4 55 5 6 77

我想将它作为 [1, 62, 4, 55, 5, 6, 77] 放在数组列表中。我如何在 Java 中做到这一点?

最佳答案

您可以使用 Files#readAllLines() 将文本文件的所有行放入 List<String> .

for (String line : Files.readAllLines(Paths.get("/path/to/file.txt"))) {
// ...
}

教程:Basic I/O > File I/O > Reading, Writing and Creating text files


您可以使用 String#split() 拆分 String部分基于正则表达式。

for (String part : line.split("\\s+")) {
// ...
}

教程:Numbers and Strings > Strings > Manipulating Characters in a String


您可以使用 Integer#valueOf() 转换 String进入 Integer .

Integer i = Integer.valueOf(part);

教程:Numbers and Strings > Strings > Converting between Numbers and Strings


您可以使用 List#add() 将元素添加到 List .

numbers.add(i);

教程:Interfaces > The List Interface


所以,简而言之(假设文件没有空行,也没有尾随/前导空格)。

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 API为此,从 Files#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());

教程:Processing data with Java 8 streams

关于Java:如何读取文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2788080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com