[英]Java Relative Path Issue
嘗試使用Java中的相對路徑解析文件路徑時遇到問題。 我不確定我在哪里失敗。 你能幫我嗎? 謝謝!
@Test
public void testObjectNotNull() throws Exception{
FileReader fileReader = new FileReader(getClass().getResource("./JavaPractice/resources/tests/codeeval/fileReaderTest.txt").toString());
assertNotNull(fileReader);
}
例外:
java.lang.NullPointerException
at components.com.codeeval.FileReader.FileReaderTest.testObjectNotNull(FileReaderTest.java:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
目錄結構:
Java實踐
--resources.tests.codeeval.fileReaderTest.txt(我嘗試訪問的文件)
--tests.components.com.codeeval.FileReader.FileReaderTest.java(嘗試訪問上述文件的Junit)
您的問題是因為
getClass().getResource("./JavaPractice/resources/tests/codeeval/fileReaderTest.txt")
一片空白。 您正在從類路徑讀取,而不是從相對路徑讀取,因此將代碼更改為
getClass().getResource("tests/codeeval/fileReaderTest.txt")
並確保資源文件夾位於您的類路徑中。 另請閱讀從類路徑加載的內容
資源不是文件。 它們通常是JAR文件條目。 您應該使用Class或ClassLoader的資源API。 那可以返回一個InputStream。
嘗試這個
InputStream in = Your_Class.class.getClassLoader().getResourceAsStream("resources/tests/codeeval/abc.txt");
assertNotNull(in);
Reader fr = new InputStreamReader(in, "utf-8");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.