2015-02-08 60 views
-1

使用此代碼我想要.jar文件讀取位於文件夾數據中的jar文本文件「file.txt」。這是一個用Processing編程的應用程序,所以我想要讀取的所有文件都在數據文件夾中。任何人都可以解釋爲什麼我得到一個NullPointerException?該文件存在幷包含文本。在.jar應用程序中讀取文本文件

import java.io.*; 

void setup() { 
    size(500, 500); 
    try { 
    // HERE I TRY TO READ THE FILE WHICH IS LOCATED IN THE JAR FILE IN THE FOLDER "DATA" 
    InputStream is = getClass().getResourceAsStream("/data/file.txt"); 

    // HERE I GET A NULL-POINTER-EXCEPTION BECAUSE THE FILE CANNOT BE READ (IS = NULL, WHY IS THE INPUT STREAM NULL?) 
    BufferedReader br = new BufferedReader(new InputStreamReader(is)); 

    // THE FIRST LINE OF THE DOCUMENT IS READ AND PRINTED IN THE CONSOLE 
    String read = br.readLine(); 
    br.close(); 
    println(read); 
    } 
    catch (IOException e) { 
    // IF THE FILE DOESN'T EXIST AN IO-EXCEPTION WILL BE CAUGHT 
    println("Error reading file"); 
    } 
}  
+0

罪魁禍首是'InputStream is = getClass()。getResourceAsStream(「/ data/file.txt」);'is is null。 – SMA 2015-02-08 13:05:31

+0

http://stackoverflow.com/questions/16842306/how-to-read-a-file-from-jar-archive或 http://stackoverflow.com/questions/3369794/how-to-a -java-in-java – emin 2015-02-08 13:23:31

回答

0

getClass().getResourceAsStream("/data/file.txt");返回null,因爲它使用那個類的系統加載器,它看不到你的jar。使用相反

YourClassName.class.getResourceAsStream("/data/file.txt"); 
+0

但是我的Processing草圖中沒有任何類。 – 2015-02-08 15:18:58

相關問題