Java 找不到程序文件

Java program file not found

我查看了此处发布的关于此问题的问题,none 的解决方案很有帮助。我在这个页面 http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#Scanner%28java.io.File%29
找到了 link 也,没有帮助。我浏览了我的教科书,甚至直接从书中复制了一段类似的代码,但再次出现“未找到文件”异常。 input.txt 文件与程序文件在同一个文件夹中,我尝试使用特定路径,还在代码中添加了这一行 System.out.println(new File("C:/input.txt").getAbsolutePath ()); 它也没有帮助。我觉得我现在的问题多于答案。文件名正确,大小写正确。我确实发现 .txt 文件被保存在 Word 中,所以我去了那里并将格式更改为纯 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));
    }
}

您需要转义斜线:"C://input.txt"。

"The input.txt file is in the same folder as the program file":也就是说你只需要"input.txt"

要查看与保存名称完全相同的文件,您可以转到命令 window 并在您要查找的位置键入 dir。

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

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

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

在文件路径中将“/”更改为File.separator
示例:

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

使用这个:

扫描仪文件输入 = 新扫描仪 ("C:/input.txt");

您的代码看起来不错,在我的 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" 作为文件名。

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

尝试按照 BlackCode 的描述更改代码,and/or 删除 C:/

在命令中输入 pwd window 会告诉你你直接在什么地方,如果它不是你硬盘的根目录,程序也找不到你告诉它的文件寻找。