2016-02-28 102 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