gpt4 book ai didi

java - 使用java将字符串从文件读取到数组列表

转载 作者:行者123 更新时间:2023-12-03 01:23:21 24 4
gpt4 key购买 nike

我正在尝试从文件中读取用分号分隔的字符串并将它们放入 arrayList 中。这是我的代码:

public ArrayList<String> readFile() throws IOException{
lines=new ArrayList<String>();

BufferedReader reader = new BufferedReader(new FileReader("D:\\input.txt"));
String line = null;
while ((line = reader.readLine()) != null) {
inputs = line.split(";");
}
reader.close();
for (String in : inputs) {
lines.add(in);
}
System.out.println(lines.size());
return lines;

}

当我运行它时,返回的ArrayList的大小是一个非常小的数字。预期数字更大。

有什么建议吗?

最佳答案

您不断覆盖inputs的内容 - 因此一旦到达第二个循环,它只包含文件最后一行的数据。

所以你应该使用这样的东西:

while ((line = reader.readLine()) != null) {
Collections.addAll(lines, line.split(";"));
}

您还改进了您的程序:

  • 通过使用Files辅助方法:
  • 通过更恰本地命名变量(行实际上包含每行上的标记)
  • 返回接口(interface)而不是具体实现(List 与 ArrayList)。

所以它可能看起来像:

public List<String> readFile() throws IOException {
List<String> lines = Files.readAllLines(Paths.get("D:/input.txt"));

List<String> tokens = new ArrayList<>();
for (String line : lines) {
Collections.addAll(tokens, line.split(";"));
}
return tokens;
}

关于java - 使用java将字符串从文件读取到数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22131029/

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