0

ファイルに書き込んで JAR を作成しようとしています。しかし、私は問題を抱えていNullPointerExceptionます。私のファイルはクラスパスにあります。

( 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();
}
}
4

1 に答える 1

3

getClass().getResourceAsStream("AllBookRecords.txt")「AllBookRecords.txt」への事前アクセスが異なります。おそらく、次のようにする必要があります。

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

または単に

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

getClass().getResource(AsStream)クラス パッケージ (サブディレクトリ) に対して相対的に機能します。

于 2013-01-19T18:28:27.293 に答える