2012-07-02 39 views
0

在代碼中,我不斷收到錯誤「(沒有這樣的文件或目錄)」讀文件:文件名不工作

public void readFile() throws IOException { 
     reader = new BufferedReader(new FileReader("map1.txt")); 

    while(true) { 
     String line = reader.readLine(); 
     System.out.println(line); 
     if(line == null) { 
      reader.close(); 
      break; 
     } 
    } 
} 

當我嘗試真正讀懂圖片/什麼我得到同樣的錯誤以下。但在我見過的關於如何使用文件讀取器的例子中,他們都只是放在文件的名字中,而沒有其他的東西。在這種情況下,地圖位於名爲Maps的src文件中的單獨文件夾中。我嘗試了各種規格的「/Maps/map1.txt」,但似乎沒有任何工作。 我如何獲得這個文件來閱讀?

(我在Mac上爲好。我不知道這是否會改變一切。)

更新

好像是NetBeans的故障。它只看到項目文件夾。我想我會開始另一個話題,詢問以後如何解決這個問題。感謝大家的幫助。

+1

添加 '的System.out.println(「當前目錄的規範路徑:」 +新文件( 「」)。getCanonicalPath()); '在打印當前目錄之前,在讀取之前查看路徑是否正確 –

+0

這正在打印文件的確切位置。但是,如果我嘗試插入到加載文件,我仍然得到錯誤。奇怪... –

回答

0

在這種情況下,地圖位於名爲Maps的src文件中的單獨文件夾中。

我假設你有一個名爲src的文件夾,它有你的java文件;在這個相同的文件夾中有一個名爲Maps的文件夾,它有map1.txt

現在,

讀者=新的BufferedReader(新的FileReader( 「map1.txt」));

打算嘗試打開當前目錄中的文件map1.txt。哪個目錄取決於您使用的IDE;但你應該能夠改變它。

如果您將其更改爲具有應該工作的文件的文件夾。

+0

我試着將map.txt移動到與代碼相同的文件夾中,但看不到變化。那是你同一個目錄的意思嗎? –

2

/Maps/map1.txt是一個絕對路徑,從頂層目錄開始。只要您從地圖上方的目錄運行java應用程序,就試試./Maps/map1.txt

+0

Maps是一個單獨的包,包含包含.java的包的源文件夾以及此方法。 '/Maps/map1.txt'不作任何改變。 –

1

我提取我的節目的某些片斷可能有益的:

FileInputStream configFile = new FileInputStream("javalogging.properties"); 

在上述情況下,該文件是在同一水平上的SRC文件夾的(這意味着,從源文件夾的)

FileInputStream configFile = (FileInputStream) 
       MyClass.class.getResourceAsStream("/javalogging.properties"); 

在上述情況下,你一定會被你的類名來代替MyClass,並把文件的源文件夾中(有用的,如果你打算在某種程度上屬性是部署應用程序在 - 的裏面JAR文件)

使用BufferedReader中,我使用的整個路徑,你可以看到如下:

File file = new File(filePath+fileName); 
BufferedReader r = new BufferedReader (new FileReader(file.getAbsoluteFile()));