我正在尝试将File对象传递给Scanner构造函数。
File file = new File("in.txt");
try{
Scanner fileReader = new Scanner(file);
}
catch(Exception exp){
System.out.println(exp.getMessage());
}
我在项目的根目录中有一个in.txt,src和bin目录,以防我的位置错误。我也试过给出绝对路径。这一行
Scanner fileReader = new Scanner(file);
总是失败。执行跳转到main的结尾。如果我拼错了文件的名称,我会得到一个FileNotFoundException。我正在使用OpenJDK的Ubuntu 12.10 Java 1.7
答案 0 :(得分:0)
如果你在java程序中执行:File file = new File("in.txt");
(假设它被命名为Program.java),那么文件in.txt
应该是
在运行时位于程序的工作目录中。所以,如果你
像这样运行你的程序:
java Program
或
java package1.package2.Program
并且在运行此命令时您处于/test1/test2/
,
然后文件in.txt
需要在/test1/test2/
。
答案 1 :(得分:0)
我在linux上运行,这就是你需要做的事情
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
public class Testing {
public static void main(String args[]) throws IOException {
Scanner s = null;
try {
//notice the path is fully qualified path
s = new Scanner(new File("/tmp/one.txt"));
while (s.hasNext()) {
System.out.println(s.next());
}
} finally {
if (s != null) {
s.close();
}
}
}
}
结果如下: