我正在尝试读取由空格分隔的整数组成的文件。 NextInt()似乎是将整数的最后一个零分开。因此,90被读为9和0. 500被读为50和0。
有没有人见过这个?
FileInputStream fs = new FileInputStream("test.txt");
Scanner input = new Scanner(new BufferedInputStream(fs));
int u = 0;
while (u < 200) {
test.i = input.nextInt();
System.out.println(test.i);
u++;
}
fs.close();
这只是一个测试我是否正确读取文件的循环。
谢谢!
答案 0 :(得分:1)
首先,如果使用nextInt()方法,则文件中存在浮点数,这将导致不匹配。其次,您的文件可能有9到0之间的空间,这就是为什么它们将9和0打印为两个不同的整数。
这是一个示例代码,它可以完成相同的操作而没有任何问题。
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Scanner;
public class IntReadFile {
public static void main(String args[]){
try{
FileInputStream fs = new FileInputStream("text.txt");
Scanner sc = new Scanner(new BufferedInputStream(fs));
int u=0,i;
while(u<30){
i=sc.nextInt();
System.out.println("Integer read:"+i);
u++;
}
sc.close();
}catch(FileNotFoundException e){
e.printStackTrace();
}
}
}
这是text.txt文件的示例输入,因此代码运行正常。