2017-08-30 72 views
0

所以我有2個文件在同一個文件夾。 「example.csv」和「example.jpg」,但是當我運行這段代碼時,我得到example.jpg的路徑,但是加載example.csv會拋出一個Nullpointer。加載CSV文件拋出NullPointerException

System.out.println(this.getClass().getResource("/example.csv").getFile()); 
System.out.println(this.getClass().getResource("/example.jpg").getFile()); 

THX對於任何幫助

+0

堆棧跟蹤的確切錯誤是什麼?你有沒有做過任何調試? – Carcigenicate

+0

你確定前面的'/'是文件名嗎? – SHG

+1

重複的https://stackoverflow.com/questions/2593154/get-a-resource-using-getresource或https://stackoverflow.com/questions/2343187/loading-resources-using-getclass-getresource/41781868#41781868 – geneSummons

回答

1

我已經把.csv文件在我的類路徑和讀取靜態方法的文件。所以請根據您的需要進行更改,但您應該可以通過這樣做來閱讀文件。

InputStream inputStream = ReadFile.class.getResourceAsStream("User.csv"); 
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); 
if (inputStream != null) { 
    System.out.println(" read csv file : "+reader.readLine()); 
} 
+0

thx做了jobb;) –

+0

@JohannesZahn:很高興它有幫助。如果這有幫助,你能接受答案嗎? –

0

使用的類裝載的getResource方法搜索,所以:

您需要將您的文件在同一目錄作爲您的類文件,或指定目錄的相對的到那個目錄。下面的代碼需要它們在類文件目錄中。

要將它們放置在類文件目錄中,請從文件名中刪除「/」。

System.out.println(this.getClass().getResource("example.csv").getFile()); 
System.out.println(this.getClass().getResource("example.jpg").getFile()); 
1

調用getFile()是徒勞的。 getResource()在JAR文件中返回一個URL。它不是一個文件,不能被視爲一個。您可以直接從URL或getResourceAsStream()直接獲取InputStream

+0

我試過了,聽起來很有希望 –

相關問題