Java readObject预览数据,但不会读取或传输数据
我似乎找不到让Java readObject预览数据,但不会读取或传输数据,java,android,serialization,Java,Android,Serialization,我似乎找不到让readObject()将其内容传输到对象变量的方法。在执行这一行之前,我能够在Eclipse的表达式窗口中看到我用oos编写的哈希映射的数据,因此我知道数据就在那里,然而,当这行执行时,我跳转到带有EOF的IOException捕获。从我所读的内容来看,这是意料之中的,但我没有找到捕获EOF的方法(使用available()和readObjectInt()的循环不起作用)。我在Android模拟器上运行这个。如有任何建议,将不胜感激 public void Save(Pottyl
readObject()
将其内容传输到对象变量的方法。在执行这一行之前,我能够在Eclipse的表达式窗口中看到我用oos编写的哈希映射的数据,因此我知道数据就在那里,然而,当这行执行时,我跳转到带有EOF
的IOException
捕获。从我所读的内容来看,这是意料之中的,但我没有找到捕获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;
}
public void保存(Pottylog数据)
{
尝试
{
FileOutputStream fos=openFileOutput(“Plog”,Context.MODE_PRIVATE);
ObjectOutputStream oos=新的ObjectOutputStream(fos);
oos.writeObject(data.get());
oos.close();
}
捕获(FileNotFoundException ex)
{
例如printStackTrace();
}
捕获(java.io.ioe异常)
{
e、 printStackTrace();
}
}
公共HashMap加载()
{
HashMap temp=null;
尝试
{
FileInputStream fis=openFileInput(“Plog”);
ObjectInputStream ois=新ObjectInputStream(fis);
temp=(HashMap)ois.readObject();
}
catch(filenotfounde异常)
{
//TODO自动生成的捕捉块
e、 printStackTrace();
返回null;
}
捕获(IOE异常)
{
//TODO自动生成的捕捉块
e、 printStackTrace();
}
catch(classnotfounde异常)
{
//TODO自动生成的捕捉块
e、 printStackTrace();
返回null;
}
返回温度;
}
EOFEException
表示您已到达流的末尾。我不知道您认为在调试器中看到了什么,但流中没有要读取的对象<代码>捕获(EOFEException exc)
起作用;此时,您应该关闭流并退出读取循环。不要误用available()
作为流结束测试:这不是它的目的