java - 使用扫描仪从文本文件中读取信息

标签 java file java.util.scanner

我在从文件读取信息时遇到这个问题。所以我有这个文本文件,其中包含我想要读取的整数并将其添加到我的 ArrayList 中。我现在的问题是扫描仪似乎只读取前两行而不是整个文件。

我的文本文件:

6
0 4 10 0 0 2
4 0 5 0 0 7
10 5 0 4 0 0
0 0 4 0 3 8
0 0 0 3 0 6
2 7 0 8 6 0
2 5

这是我的代码:

FileReader reader = new FileReader(inputFileName);
Scanner in = new Scanner(reader);

// read in the data here
while(in.hasNextLine()){
    if(in.hasNextInt())
        alist.add(in.nextInt());
    in.nextLine();
}

这是我的输出: 6 0 4 10 0 0 2 2

希望有人能帮我解决这个问题。我尝试将所有内容存储在字符串中并从那里读取,但最终我得到的都是个位数。

最佳答案

你应该尝试这个来读取所有整数

while(in.hasNextInt()){
    alist.add(in.nextInt());
}

当您在代码中输入 in.nextLine(); 时,它将获得一个新行。因此,在下一次迭代中,它将仅扫描该行中的第一个整数。但是使用 hasNextInt nextInt 对,它将获得跳过空白(空格和新行)的整数,并在到达文件末尾时停止

关于java - 使用扫描仪从文本文件中读取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33627975/

相关文章:

Java 多重扫描器

Java网站到Rails,复制密码加密

java - Maven 最佳实践 : including timestamps for snapshot releases or not?

java - Android:可动画化的3D人体代码

java - 我应该如何将 Parcelable 用于抽象类?

PHP - 获取上传文件传输完成的时间戳

c - 如何从文本文件中读取数据

javascript - 记住 Chrome 扩展中的大字符串

Java Scanner 类因多次使用而失败

java - 为什么在实例化 Scanner 类的新对象时将 (System.in) 作为参数传递?