可能的问题
====
我有两个文本文件,名为input.txt
和battery_input.txt
。两者都包含完全相同的东西,即整数 - 2.它们之间的唯一区别是input.txt
的大小是1个字节而battery_input.txt
是4个字节。我将它们都放在工作目录中,并且在生成它们时存在File
个实例。但是,Scanner无法从battery_input.txt
读取整数。以下是代码;它会打印ERR
。
import java.util.Scanner;
import java.io.File;
public class Scanner_input{
public static void main(String[] args) throws Exception{
File inputFile = new File("battery_input.txt");
Scanner sc = new Scanner(inputFile);
System.out.println("Current Directory = "+System.getProperty("user.dir"));
if(sc.hasNextInt()) {
int num = sc.nextInt();
System.out.println(num);
} else {
System.out.println("ERR!");
}
sc.close();
}
}
如果没有if语句,它会打印下面给出的错误消息:
线程“main”中的异常java.util.NoSuchElementException at java.util.Scanner.throwFor(未知来源)at java.util.Scanner.next(未知来源)at java.util.Scanner.nextInt(未知来源)at java.util.Scanner.nextInt(未知来源)at Scanner_input.main(Scanner_input.java:10)
答案 0 :(得分:0)
试试这个
File file = new File("F://fileIO/baseFile.txt"); //absolute path of file
if (file.exists()) {
Scanner sc = new Scanner(file);
while (sc.hasNextLine()) {
System.out.println(sc.nextLine());
}
} else {
System.out.println("file not found");
}
答案 1 :(得分:0)
由于您已经提到一个文件长度为1个字节而另一个文件长度为4个字节,因此我怀疑较大的文件是UTF-8
编码的。
试试这个 - Scanner sc = new Scanner(inputFile,"utf-8");
将输入定义为UTF-8
编码。