当前位置: 首页 > 知识库问答 >
问题:

Java readObject预览数据,但不会读取或传输数据[重复]

叶稳
2023-03-14

我似乎找不到使ReadObject()将其内容转移到对象变量的方法。当我单步执行Load函数时,我得到了“temp=(HashMap)ois.readobject();”在执行这一行之前,我可以在Eclipse的表达式窗口中看到我用oos编写的HashMap的数据,这样我就知道数据在那里,但是当执行这一行时,我会跳转到IOExceptioncatch并使用EOF。据我所知,这是意料之中的,但我还没有找到捕捉EOF的方法(使用available()和ReadObjectInt()的循环不起作用)。我在Android模拟器上运行这个。如有任何建议,将不胜感激。

public void Save(Pottylog data)
{
    try 
    {
        FileOutputStream fos = openFileOutput("Plog", Context.MODE_PRIVATE);
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(data.get());
        oos.close();
    }
    catch (FileNotFoundException ex)
    {
        ex.printStackTrace();
    }
    catch (java.io.IOException e)
    {
        e.printStackTrace();
    }
}

public HashMap<String, Integer> Load()
{
    HashMap<String, Integer> temp = null;

    try 
    {
        FileInputStream fis = openFileInput("Plog");
        ObjectInputStream ois = new ObjectInputStream(fis);
        temp = (HashMap<String, Integer>) ois.readObject();

    } 
    catch (FileNotFoundException e) 
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return null;
    } 
    catch (IOException e) 
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
    catch (ClassNotFoundException e) 
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return null;
    }

    return temp;
}

共有1个答案

丁念
2023-03-14

EOFException表示您已经到达流的末尾。我不知道您认为您在调试器中看到了什么,但流中没有要读取的对象catch(EOFException exc)有效;此时,您应该关闭流并退出读取循环。不要误用available()作为流测试的结尾:这不是它的作用。

 类似资料:
  • 问题内容: 我正在使用Selenium为网站构建一些功能测试,但我陷入了一个奇怪的浏览器问题,即页面似乎永远无法完成加载。状态栏读取“正在从…传输数据”或“读取…”。 由于页面从未完成加载,因此我的selenium测试超时。 该问题似乎仅在FireFox上发生。 我们的测试依靠FireFox * chrome来测试文件上传,因此FireFox对于我们的测试策略至关重要。 我已经检查了FireBug

  • 我退出新的MongoDB。我有一个收藏,里面几乎没有文件。下面是一个例子。 我想获得数组中所有条目的标记以显示它们,并使用java进行一些计算。到目前为止,我已经完成了阅读文档和显示所有数据的工作。但我找不到一种方法,只能从中得到“标记”。 到目前为止,关于使用Java从MongoDB读取数据,我只知道这些。请帮助我将文档中的“标记”字段仅获取到数组中<谢谢你。

  • ap.getSessionData(OPTION | keys | key, CALLBACK) 读取会话级数据。可用于页面间传递数据。 可直接传入一个数组作为 OPTION.keys,或直接传入一个字符串,作为 OPTION.keys 数组中的某一个 key。 OPTION 参数说明 名称 类型 必填 描述 keys String Array 是 要读取的数据的 key CALLBACK 参数说

  • TensorFlow程序读取数据一共有3种方法: 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据。 从文件读取数据: 在TensorFlow图的起始, 让一个输入管线从文件中读取数据。 预加载数据: 在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况)。 目录 数据读取 供给数据(Feeding) 从文件读取数据

  • 和一个类ContentProvider,因为它也是在日志中的错误中指定的 公共类PoemsProvider扩展ContentProvider{private static final UriMatcher URI_MATCHER=new UriMatcher(UriMatcher.no_match);private static final int peams=1;private static f