首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在java中处理EOFException

在java中处理EOFException
EN

Stack Overflow用户
提问于 2010-11-17 06:54:08
回答 7查看 1.4K关注 0票数 0

我在java赋值中创建了一个从LinkedList写入文件的方法(我使用了序列化),然后创建了另一个将文件读入inkedList的方法。下面是我的方法的主体:

代码语言:javascript
运行
复制
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();
}

但是它不能正常工作。我认为这一部分:

代码语言:javascript
运行
复制
Employee e = (Employee) ois.readObject();
linkP.add(e);

只将文件的第一个对象读取到linkedlist中,而忽略其他对象。我将它包围了几次for循环和while循环,但它导致了EOFException。如何更改我的方法以将文件的所有对象读取到LinkedList中?

EN

Stack Overflow用户

发布于 2010-11-17 07:04:18

可能首先需要看看你是如何写作的,但通常是这样:

代码语言:javascript
运行
复制
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)。

票数 0
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4199896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档