2013-01-19 38 views
0

我正在嘗試寫入文件以創建JAR。 但我在NullPointerException有問題。我的文件在Classpath中。NullPointerException在寫入文件以創建JAR時

(我用getClass(),因爲我將創建一個JAR文件)。

任何原因,我會得到一個NullPointerException這裏?謝謝你的幫助。

下面是代碼:

package Library; 
import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.PrintWriter; 
import java.net.URISyntaxException; 

public class WriteJARSample { 
public WriteJARSample() throws URISyntaxException, FileNotFoundException, FileNotFoundException, IOException{ 
    write(); 
} 
public void write() throws URISyntaxException, FileNotFoundException, IOException{ 
    try{ 
     File Mf=new File(getClass().getClassLoader().getResource("AllBookRecords.txt").toURI()); 
     File Tf=new File(getClass().getClassLoader().getResource("Boutput.txt").toURI()); 
     BufferedReader Bbr=new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("AllBookRecords.txt"))); 
     PrintWriter Bpw=new PrintWriter(Mf); 
     String Bs; 
     while((Bs=Bbr.readLine()) != null){ 
       Bpw.println(Bs); 
     } 
     Bpw.close(); 
     Bbr.close(); 
     Mf.delete(); 
     Tf.renameTo(Mf); 
    } 
    catch(IOException ioe){ 

    } 
    catch(URISyntaxException urise){ 

    } 
} 
public static void main(String[] args) throws URISyntaxException, FileNotFoundException, IOException{ 
    new WriteJARSample(); 
} 
} 
+0

在哪一行是拋出的NullPointerException? – MrSmith42

+0

在「File Tf = ...」行中 – Sajad

+0

檢查getClass()。getClassLoader()。getResource(「Boutput.txt」)是否返回null。 – MrSmith42

回答

3

getClass().getResourceAsStream("AllBookRecords.txt")不同爲 「AllBookRecords.txt」 的現有訪問,也許它也應該是:

getClass().getClassLoader().getResourceAsStream("AllBookRecords.txt") 

或簡單地

getClass().getResourceAsStream("/AllBookRecords.txt") 

getClass().getResource(AsStream)相對於類包(子目錄)有效。

+0

+ 1.我認爲最後的選擇應該工作(在這種情況下) –