找不到Java程序文件

时间:2016-02-28 00:45:10

标签: java filepath filenotfoundexception eof

我已经查看了此处发布的有关此问题的问题,但没有一个解决方案有所帮助。我找到了此页面的链接http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#Scanner%28java.io.File%29
另外,没有帮助。我查看了我的教科书,甚至直接从书中复制了一个类似的代码,并再次给出了File Not Found Exception。 input.txt文件与程序文件位于同一文件夹中,我尝试使用特定路径,也将此行添加到代码System.out.println(新文件(“C:/input.txt”))。 getAbsolutePath()); 它也没有帮助。我觉得我现在有更多问题而不是答案。文件的名称是正确的,大小写是正确的。我确实发现.txt文件正在Word中保存,所以我去那里并将格式更改为plain txt文件。将它保存为Word文档是否与此问题有关,或者我是否在那里浪费时间?

这是我的代码:

import java.util.Scanner;
import java.io.*;
import java.text.DecimalFormat;

public class FileRead
{
    public static void main(String[] args) throws IOException
    {
        double count = 0;
        double sum = count++;
        double average = sum/count;

        File fileObject = new File("C:/input.txt");
        System.out.println(new File("C:/input.txt").getAbsolutePath());
        Scanner fileIn = new Scanner (fileObject);

        while (fileIn.hasNext())
        {
            count = fileIn.nextDouble();
            sum = count++;
        }
        average = sum/count;
        DecimalFormat df = new DecimalFormat("#0.00");
        System.out.println("The total of the: " + count + "numbers entered are: "
            + sum + " and the average is: " + df.format(average));
    }
}

6 个答案:

答案 0 :(得分:0)

你需要逃避斜杠:“C://input.txt”。

答案 1 :(得分:0)

“input.txt文件与程序文件位于同一文件夹中”:这意味着您只需要“input.txt”

要准确查看保存名称的文件,您可以转到命令窗口并在您要查找的位置键入dir。

或者,您可以在程序中执行此操作:

File f=new File(".");
String[] fs=f.list();
for(String s:fs) System.out.println(s);

如果您的文件没有打印,那么它就在其他地方。

答案 2 :(得分:0)

在文件路径更改" /"到File.separator
例如:

    File fileObject = new File("C:" + File.separator + "input.txt");

答案 3 :(得分:0)

您的代码看起来很好,并且在我的Window 7上工作正常(尽管我必须更改为管理员才能创建c:\ input.txt) 令人困惑的是,即使文件不存在,.getAbsolutePath()也会给出一个值。 更好的测试如下 - 如果您的文件不存在,它将打印为false。

File fileObject = new File("c:/input.txt");
System.out.println(fileObject.exists());
Scanner fileIn = new Scanner (fileObject);

要确定该文件存在,请在命令行中尝试此操作

echo 1 2 3 4 > input.txt

然后摆脱完整路径,只需使用“input.txt”作为文件名。

答案 4 :(得分:0)

C:/input.txt告诉文件系统在硬盘驱动器的根目录中查找名为input.txt的文件,假设C:/等同于C:\
这是您在根目录中运行程序的位置。如果没有,并且根管理器中没有名为input.txt的文件,程序将无法按预期工作。

尝试更改BlackCode所描述的代码,和/或删除C:/

在命令窗口中键入pwd将告诉您直接在哪里,如果它不是您的硬盘驱动器的根,程序找不到您要告诉它的文件。

答案 5 :(得分:-1)

使用此:

扫描仪fileIn =新扫描仪(“C:/input.txt”);