2016-02-28 61 views
0

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

这里是我的代码:

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)); 
    } 
} 
+0

您确保文档的扩展名为.txt?请注意,它可以是'input.txt.docx',就如您所说在Word中创建文件一样。为了安全起见,请配置文件夹以查看所有文件的扩展名。 –

+0

实际上,我在texpad中创建了该文件,但由于某种原因它将它保存在Word中?但它确实具有扩展名.txt。 – urmagurd

回答

0

C:/input.txt告诉文件系统在硬盘根目录下寻找一个名为input.txt的文件,假设C:/相当于C:\
这就是你在根目录下运行程序的地方。如果不是,并且根导向器中没有名为input.txt的文件,程序将无法按预期工作。

尝试通过BlackCode描述改变的代码和/或删除C:/

在命令窗口中键入pwd会告诉你,你是直接的东西,如果它不是你的硬盘驱动器的根目录程序无法找到您要查找的文件。

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); 

如果你的文件犯规打印那么它在其他地方。

+0

这就是我的想法。我试图现在添加一个try和catch语句,但它不喜欢那样。 – urmagurd

+0

然后只有一种方法:转到命令窗口并在程序位置键入dir;你会看到所有的文件完全保存 – gpasch

+0

我做到了这一点,文件出现在列表中,我将代码添加到程序中,并在那里......我只是不明白为什么它不能找到它。 – urmagurd

0

在文件路径变化 “/” 到文件分割符
实施例:

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

使用此:

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

+0

这给了一个新的错误,我第一次误读,所以当我试着说inputMismatchException。 – urmagurd

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中”作为文件名。

+0

我试过了,它仍然说它找不到它......我知道它在那里,因为我一直在寻找以确保我不会幻想我创造它的事实。 – urmagurd

+1

如果您确定您的输入文件与您的可执行文件在同一个文件夹中,那么在开始时不需要c:/。您是使用Eclipse还是从命令行编译? –

+0

使用JDK我从这里得到它http://www.oracle.com/technetwork/java/javase/downloads/它是教练给我们的东西,现在我意识到这里有大量的编译器,这是一个我想我们应该使用。 – urmagurd