我在java赋值中创建了一个从LinkedList写入文件的方法(我使用了序列化),然后创建了另一个将文件读入inkedList的方法。下面是我的方法的主体:
try {
FileInputStream fin = new FileInputStream("c:\\Info.ser");
ObjectInputStream ois = new ObjectInputStream(fin);
Employee e = (Employee) ois.readObject();
linkP.add(e);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}但是它不能正常工作。我认为这一部分:
Employee e = (Employee) ois.readObject();
linkP.add(e);只将文件的第一个对象读取到linkedlist中,而忽略其他对象。我将它包围了几次for循环和while循环,但它导致了EOFException。如何更改我的方法以将文件的所有对象读取到LinkedList中?
发布于 2010-11-17 07:04:18
可能首先需要看看你是如何写作的,但通常是这样:
ObjectInputStream is = null;
try
{
is = new ObjectInputStream(new FileInputStream("c:/Info.ser"));
Object object = null;
while ((object = is.readObject()) != null)
{
linkP.add(object);
}
}
catch(Exception e)
{
//Whatever you need to do
}
finally
{
//Never forget to close your streams or you'll run into memory leaks
try
{
if (is != null)
{
is.close();
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}另外,对你来说单独处理异常可能是更好的做法,但我真的不知道流抛出了什么,所以用其他所有东西替换(异常e)。
https://stackoverflow.com/questions/4199896
复制相似问题