簡體   English   中英

從Java中的單獨文件夾中讀取文本文件

[英]Read the text file from separate folder in java

我在項目中有以下路徑,我正在為名為SomeClassTest.java的Someclass.java編寫測試,在測試中,我需要讀取“ sample.txt”,但無法讀取該文本文件。 以下是我的項目結構。

   src/
      java/
         SomeClass.java

   test/
      java/
         SomeClassTest.java
      resources/
         sample.txt

我嘗試使用以下代碼讀取文件。

File file = new File("/resources/sample.txt");
        FileReader fr = new FileReader(file);
        br = new BufferedReader(fr);
        while ((sCurrentLine = br.readLine()) != null) {
            System.out.println(sCurrentLine);
        }

上面的代碼給出了fileNotFoundException。 我可以知道我在做什么錯嗎?

試試這個: new File("src/test/resources/sample.txt");

由於resources是一個包,因此可以使用getClass().getResourceAsStream(...)訪問文件:

FileReader fr = new FileReader(getClass().getResourceAsStream("/resources/sample.txt");
br = new BufferedReader(fr);
while ((sCurrentLine = br.readLine()) != null) {
    System.out.println(sCurrentLine);
}

此函數在您的類層次結構內的文件上打開InputStream

如果要從靜態上下文執行代碼,則必須使用MyClass.class.getResourceAsStream(...)而不是調用getClass().getResourceAsStream(...)

您不應該那樣使用。

File file = new File("/resources/sample.txt");

因為如果您以斜杠開頭意味着它將檢入根目錄。

因此,您將使用new File("src/test/resources/sample.txt"); 像那樣。

或將資源目錄從src移到相同級別的src,然后可以使用new File("resources/sample.txt"); 像那樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM