因此,我试图从txt文件中读取值,并将它们添加到ArrayList中。我使用以下代码,但在使用它之后,当我使用ArrayList (List)时,它仍然是空的。有什么容易发现的错误吗?
ArrayList<Integer> list = new ArrayList<>();
Scanner in = null;
try{
String fname = "p01-runs.txt";
in = new Scanner(new File(fname));
}catch (FileNotFoundException pExcept){
System.out.println("Sorry, the File you tried to open does not exist. Ending program.");
System.exit(-1);
}
while (in.hasNextInt())
{
int x = in.nextInt();
list.add(x);
}编辑:输入文件只是一个整数值的txt文件,如下所示:2,8,3
2 9
8
6
3 4 6 1 9
发布于 2016-03-26 04:15:22
对hashNextInt()的调用可以基于以下几个原因返回false:
这可能是由于一个空输入文件,或者由于文件的格式与您试图读取它的方式不匹配造成的。
在您的示例中,除了FileNotFoundException之外,还可能抛出一些FileNotFoundException。
UPDATE --这个问题你没有告诉我们/告诉我们。想想这个..。使用您的代码和输入文件。
[stephen@blackbox tmp]$ cat Test.java
import java.util.*;
import java.io.*;
public class Test {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
Scanner in = null;
try{
String fname = "test.txt";
in = new Scanner(new File(fname));
}catch (FileNotFoundException pExcept){
System.out.println("Sorry, the File you tried to open does not exist. Ending program.");
System.exit(-1);
}
while (in.hasNextInt())
{
int x = in.nextInt();
list.add(x);
}
System.out.println("Read " + list.size() + " numbers");
}
}
[stephen@blackbox tmp]$ cat test.txt
2 8 3
2 9
8
6
3 4 6 1 9
[stephen@blackbox tmp]$ javac Test.java
[stephen@blackbox tmp]$ java Test
Read 12 numbers
[stephen@blackbox tmp]$ https://stackoverflow.com/questions/36231471
复制相似问题