[英]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.