私のクラスはパス(dir1/dir2/abc.txt)またはファイル(def.txt)を含むStringを取得し、そのファイルに書き込み/読み込みを行います。ファイルが存在しない場合、私はディレクトリ(あれば)とファイルを作成したいと思います。Java:存在しない場合のファイルまたはディレクトリの作成
私のクラスのコンストラクタこれまでのところ(「PFAD」は、インスタンス変数です):
public SerializedFahrzeugDAO(String path) {
pfad=path;
try{
FileInputStream filein= new FileInputStream(pfad);
ObjectInputStream in = new ObjectInputStream(filein);
List<Fahrzeug> liste = (List<Fahrzeug>)in.readObject();
in.close();
FileOutputStream fileout = new FileOutputStream(pfad);
ObjectOutputStream out = new ObjectOutputStream(fileout);
out.writeObject(liste);
out.close();
}
catch (Exception f){
if(f instanceof FileNotFoundException){
try{
File ziel = new File(pfad);
File dir= new File(ziel.getParentFile().getAbsolutePath());
dir.mkdirs();
FileOutputStream fileout = new FileOutputStream(pfad);
ObjectOutputStream out = new ObjectOutputStream(fileout);
List<Fahrzeug> newlist = new ArrayList<Fahrzeug>();
out.writeObject(newlist);
out.close();
}
catch(Exception y){System.out.println(y); }
}
else {System.out.println(f);}}
それは「DIR/file.txtは」のようなパスを持つ正常に動作しますが、私は私が手に、ファイル名のみを入力した場合a NullPointerException
。
stacktraceを見てください。例外はどこにスローされますか?おそらく助けることができるようにstacktrace全体を投稿してください。 –