【发布时间】:2017-02-19 21:34:04
【问题描述】:
我的班级得到一个包含路径 (dir1/dir2/abc.txt) 或文件 (def.txt) 的字符串,我想写入/读取该文件。如果文件不存在,我想创建目录(如果有的话)和文件。
到目前为止我的类构造函数(“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”这样的路径,但如果我只输入一个文件名,我会得到一个NullPointerException。
【问题讨论】:
-
仔细查看堆栈跟踪。异常在哪里抛出?发布整个堆栈跟踪,以便我们可以提供帮助。
标签: java file exception-handling io nullpointerexception