我正在尝试制作一个程序,将字符串列表保存到文件中,然后将它们读入数组列表。这是我当前的代码。
ObjectInputStream input = null;
try {
input = new ObjectInputStream(new FileInputStream("friends.txt"));
} catch (FileNotFoundException e) {
File f = new File("friends.txt");
try {
f.createNewFile();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String obj;
try {
while ((obj = (String)input.readObject()) != null) {
friendly.add(obj);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这将返回空指针异常。我不太确定这里出了什么问题。
最佳答案
嗯,一方面,如果文件不存在,“input”将为空。
我不太确定以您的方式处理文件不存在的情况的基本原理是什么 - 为什么不只通过 File.exists() 测试是否存在并且只执行打开和读取如果存在?
除此之外,正如另一位评论员所说,提供堆栈跟踪作为开始。
关于java - 数组列表和平面文件数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10610904/