我正在尝试写入文件来创建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();
}
}
答案 0 :(得分:3)
getClass().getResourceAsStream("AllBookRecords.txt")
对于“AllBookRecords.txt”的先前访问有所不同,也许它也应该是:
getClass().getClassLoader().getResourceAsStream("AllBookRecords.txt")
或只是
getClass().getResourceAsStream("/AllBookRecords.txt")
getClass().getResource(AsStream)
相对于类包(子目录)工作。