簡體   English   中英

Java相對路徑問題

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

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