java - 读取文件列表<整数>

标签 java arrays int

我正在尝试读取其中包含以逗号分隔的数字的文本文件。该文件很大,可能包含多达几千个数字。我需要将这些数字添加到列表中

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/

相关文章:

Java:打印数组:IndexOutOfBoundsException:索引:2,大小:2

java - 使用通过 JAVA 代码生成的 token 时,oauth 的凭据无效(失败)

java - 使用 OnClickListener 的 Android 应用程序在 startActivity(intent) 上关闭

java - 驾照考试奇怪的问题

python - 以 10 为基数的 int() 的文字无效 : 'q'

python - 不使用 if 语句生成多个变量输出

java - 负字符值JAVA

java - 我可以获取生成当前线程的类和方法的名称吗?

java - 关于接口(interface)引用变量的问题

Javascript 全局数组未定义