Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:ObjectInputStream_Java_Object_Io - Fatal编程技术网

Java:ObjectInputStream

Java:ObjectInputStream,java,object,io,Java,Object,Io,我试图理解这段代码的作用 我们创建了一个流,这样我们就可以从这个文件中读取数据。这个ObjectInputStream做什么?我们能读懂这个物体并把它画成地图吗?我显然不明白,我很高兴能得到您的帮助。我猜是它正在读取一个HashMap,该HashMap以前是使用相应的Out/Write方法写入文件的 ObjectInputStream将读取ObjectOutputStream在文件中序列化的对象 此代码将 从文件名字符串、文件的绝对路径创建InputStream 创建ObjectInputStr

我试图理解这段代码的作用


我们创建了一个流,这样我们就可以从这个文件中读取数据。这个ObjectInputStream做什么?我们能读懂这个物体并把它画成地图吗?我显然不明白,我很高兴能得到您的帮助。

我猜是它正在读取一个HashMap,该HashMap以前是使用相应的Out/Write方法写入文件的

ObjectInputStream将读取ObjectOutputStream在文件中序列化的对象

此代码将

从文件名字符串、文件的绝对路径创建InputStream 创建ObjectInputStream,以读取保存在该文件中的对象 将创建HashMap对象,保存到Map变量
这意味着,在这个文件中,有一个HashMap类型的对象,它将被转换为映射到这个代码中

你读过api文档吗?坦白地说,我没有。我和他们相处得不太好。呃,如果你不做研究,这里的人可能不会帮助你,即使你得到帮助,你也不会理解。好吧,我会在问之前先读一遍。那么“in”是否应该只包含地图?如果没有,它会知道自己找到文件中的映射吗?我应该在java.lang.ClassCastException上声明吗?谢谢!请看我的回答。最好自己试试看;但是是的,如果包含的对象不是HashMap,它会抛出异常。通常您知道从文件中读取的对象类型,但是如果不是HashMap对象,它会抛出异常。不,in不应该只包含HashMapobjects@Dear赫马尔:我无法从你的答案中理解它是否只包含散列图?也许第一个对象应该是一个?或者它假设只包含一个对象,而这个对象应该是一个映射?我怎么能把地图放进文件里?像我在java中那样编写它的定义?@Nir,不,文件将包含对象,而不仅仅是HashMap或Map对象。通过FileOutputStream、ObjectOutputStream和实现可序列化接口的对象将对象写入文件
    public void bar(String fileName) throws IOException{
    FileInputStream fileIn = new FileInputStream(fileName);
    ObjectInputStream in = new ObjectInputStream(fileIn);
    Map map = (HashMap) in.readObject();
}
public void bar(String fileName) throws IOException{
    FileInputStream fileIn = new FileInputStream(fileName); //1
    ObjectInputStream in = new ObjectInputStream(fileIn); //2
    Map map = (HashMap) in.readObject(); //3
}