0

我有以下程序,文件“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

4

5 回答 5

1

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

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

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

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

或者按照 jLordo 的建议将您的文件移动到您的根文件夹

于 2012-12-19T18:51:32.060 回答
1

三种解决方案。选一个:

1:将 euler.txt 从 src 上移一个目录
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);
于 2012-12-19T18:52:11.893 回答
1

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


或者,对于您当前的位置,将路径更改为: -

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

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

您也可以给absolute path,但这不是要走的路,因为每次将项目移动到不同的位置时,它都需要修改路径。

于 2012-12-19T18:50:30.487 回答
0

正如所指出的,当前工作目录是启动程序的目录,而不是 src 目录。你总是可以找到当前的工作目录

String workingDir = new java.io.File( "." ).getCanonicalPath();
于 2012-12-19T18:56:25.420 回答
0

尝试这个

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

假设 euler8.txt 在 src 文件夹中

于 2012-12-19T18:53:18.487 回答