我正在尝试读取其中包含以逗号分隔的数字的文本文件。该文件很大,可能包含多达几千个数字。我需要将这些数字添加到列表中
List<Integer> listIntegers = new ArrayList<Integer>();
最好的方法是什么?我目前正在这样阅读文件;
StringBuilder sb = new StringBuilder();
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("D:\\generated30-1.cav"));
String line = null;
while ((line = br.readLine()) != null)
{
sb.append(line.replaceAll(",",""));
if (sb.length() > 0)
{
sb.append("\n");
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
if (br != null)
{
br.close();
}
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
String contents = sb.toString();
最佳答案
如果数字以逗号分隔,您不应该删除逗号。我会使用 Scanner
。我会使用 try-with-resources
而不是显式的 close()
。我会用逗号拆分
每一行(\\s*
globs 可选空格)。喜欢,
List<Integer> listIntegers = new ArrayList<>();
File f = new File("D:\\generated30-1.cav");
try (Scanner sc = new Scanner(f)) {
while (sc.hasNextLine()) {
String line = sc.nextLine();
String[] tokens = line.split("\\s*,\\s*");
for (String token : tokens) {
listIntegers.add(Integer.parseInt(token));
}
}
} catch (Exception e) {
e.printStackTrace();
}
return listIntegers;
关于java - 读取文件列表<整数>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53643160/