java - 如何从Java文件中读取一行中的每个整数?

标签 java file bufferedreader filereader

我有一个包含 n 行整数的文件。我想在每一行中添加每个 int 并打印它们(所以我应该在末尾打印 3 个 int,每个 int 一行)。

我尝试了这个,但它会读取并添加第一个循环中的所有整数。

scan = new Scanner(new BufferedReader(new FileReader("input.txt")));
int n = scan.nextInt();
for (int i = 0; i < n; i++) {
    while (scan.hasNextLine()) {
         sum += scan.nextInt();
    }
    System.out.println(sum);
    sum = 0;
}

最佳答案

此行为是由错误使用循环和扫描引起的。 正确的解决方案之一还结合了 java 8 lambda,假设文件中整数的分隔符是空格(“”):

    Path path = Paths.get("your path");
    try{
        Files.lines(path)
                .map( line -> line.split(" "))
                .mapToInt( numbers -> Arrays.stream(numbers)
                   .reduce(0 , (sum, num) -> sum + Integer.parseInt(num), (first, second) -> first + second ))
                .forEachOrdered(System.out::println);

    } catch (IOException e){
        e.printStackTrace();
    }

关于java - 如何从Java文件中读取一行中的每个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56314600/

相关文章:

javascript - js如何显示多个文件的名称

python - 防止 BufferedReader 关闭文件列表的文件

java - 返回 BufferedReader

Java 8 LocalDateTime 正在解析无效日期

Java - 根据空格和单引号拆分字符串但忽略两个单引号

php - 从php中的日志文件中删除存储在数组中的内容

java - 删除文件每行最后一个字符的最佳方法

Java在另一个方法中调用变量

java - 如何创建更改 GUI 中选项卡的常规操作?

java - 代号一 - 为什么我的 TableLayout 在从另一个 Form 返回时被修改?