NullPointerException写入文件以创建JAR

时间:2013-01-19 17:49:41

标签: java file jar nullpointerexception

我正在尝试写入文件来创建JAR。 但我遇到NullPointerException的问题。我的文件在Classpath中。

(我使用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();
}
}

1 个答案:

答案 0 :(得分:3)

getClass().getResourceAsStream("AllBookRecords.txt")对于“AllBookRecords.txt”的先前访问有所不同,也许它也应该是:

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

或只是

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

getClass().getResource(AsStream)相对于类包(子目录)工作。