无法打开文件进行阅读

时间:2014-03-27 08:32:14

标签: java debugging file-io

我正在使用控制台IO来读取文件并在我的IDE窗口中显示它(我正在使用Netbeanz)

package javaapplication1;
import java.util.*;
import java.io.*;

public class JavaApplication1
{
    public static void main(String[] args) throws FileNotFoundException
    {  
       String data;
       Scanner myscan = new Scanner(new File("foo.txt"));

       while ( myscan.hasNextLine())
       {
           data = myscan.nextLine();
           System.out.println(data);
       }

       myscan.close();
    }
}

出于某种原因,我无法打开文件:foo.txt虽然我把它放在与我的应用程序相同的文件夹中

以下是我放置foo.txt

的图片

enter image description here

我收到以下异常

Exception in thread "main" java.io.FileNotFoundException: foo.txt (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.util.Scanner.<init>(Scanner.java:656)
    at javaapplication1.JavaApplication1.main(JavaApplication1.java:21)

我如何解决此问题以及发生了什么?

3 个答案:

答案 0 :(得分:2)

我认为最可能的原因是找不到文件。

当您打开文件时,它会从您的工作目录中查找。

我认为对于项目根源的netbeans来说。

在这种情况下,真实文件名为src/javaapplication1/foo.txt而不是foo.txt

如果您只需要该文件,并且不需要指向任何文件,则可以将其嵌入到应用程序中并使用输入流进行读取。

答案 1 :(得分:1)

File采用绝对路径。你可以试试这个

InputStream is = JavaApplication1.class.getResourceAsStream("foo.txt");
myscan = new Scanner(is);

答案 2 :(得分:0)

试试这个

       URL url = JavaApplication1.class.getResource("sample.txt");
        File f = new File(url.toURI());
        Scanner scan  = new Scanner(f);
        while(scan.hasNext()){
            System.out.println(scan.next());
        }