无法使用Java中的Scanner读取文件

时间:2014-02-02 17:46:05

标签: java readfile

我正在尝试将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

2 个答案:

答案 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();
            }
        }
    }
}

结果如下: enter image description here

source from Java Docs