文件I / O Java程序无法识别src文件夹中的.txt文件

时间:2012-12-19 18:47:08

标签: java file-io filenotfoundexception

我有以下程序,文件“euler8.txt”存储在项目的src文件夹C:\Users\john\workspace\Euler1\src\euler8.txt中。我尝试运行时收到异常Exception in thread "main" java.io.FileNotFoundException: euler8.txt (The system cannot find the file specified)

private static void euler8() throws IOException
{   
    int current;
    int largest=0;
    int c =0;
    ArrayList<Integer> bar = new ArrayList<Integer>(0);
    File infile = new File("C:/Users/xxxxxxxx/workspace/Euler1/euler8.txt");
    BufferedReader reader = new BufferedReader(
            new InputStreamReader(
            new FileInputStream(infile),
            Charset.forName("UTF-8")));
    try
    {
        while((c = reader.read()) != -1) 
        {
            bar.add(c);
        }
    }
    finally{reader.close();}
    for(int i=0; i<bar.size(); i++)
    {
        current = bar.get(i) * bar.get(i+1) * bar.get(i+2) * bar.get(i+3) * bar.get(i+4);
        if(largest<current)
            largest = current;
    }
}

我现在正在看的图像 http://img163.imageshack.us/img163/7017/halpbk.png

5 个答案:

答案 0 :(得分:1)

您应该将文本文件从src文件夹中移出,直接放在项目文件夹下。


对于您当前的位置,

,请将路径更改为: -

File infile = new File("./src/euler8.txt");

您提供的路径是相对于根文件夹的,因此如果您提供"euler8.txt",则无法找到该文件。您需要提供相对于项目文件夹的路径才能进入src文件夹。

您也可以提供absolute path,但这不是可行的方法,因为每次您将项目移动到其他位置时都会要求修改路径。

答案 1 :(得分:1)

此行在根文件夹中查找您的文本文件。

       File infile = new File("euler8.txt");

你需要给出这样的绝对路径

      File infile = new File("C:/Users/john/workspace/Euler1/src/euler8.txt");

或者,因为jLordo建议将文件移动到根文件夹

答案 2 :(得分:1)

三种解决方案。选择一个:

1:将su一个目录中的euler.txt移动到上面 2:将行改为

File infile = new File("./src/euler8.txt");

3:使用绝对路径

String path  = "C:/Users/john/workspace/Euler1/src/";
String file = "euler8.txt";
File infile = new File(path + file);

答案 3 :(得分:0)

试试这个

  InputStream inputStream = getClass().getResourceAsStream("euler8.txt");
        String sa = "";
        int cc;
        while((cc = inputStream.read()) != -1) {
            sa += (char) cc;
        }

假设euler8.txt在src文件夹中

答案 4 :(得分:0)

正如所指出的,当前工作目录是启动程序的目录,而不是src目录。您始终可以使用

找到当前的工作目录
String workingDir = new java.io.File( "." ).getCanonicalPath();