Java:ObjectInputStream

Num*_*tor -1 java io object

    public void bar(String fileName) throws IOException{
    FileInputStream fileIn = new FileInputStream(fileName);
    ObjectInputStream in = new ObjectInputStream(fileIn);
    Map map = (HashMap) in.readObject();
}
Run Code Online (Sandbox Code Playgroud)

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

我们创建一个流,所以我们将能够从这个文件中读取.这是ObjectInputStream做什么的?我们是否阅读了对象并制作了一张地图?我显然不明白,我很乐意为你提供帮助.

Mar*_*era 6

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

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
}
Run Code Online (Sandbox Code Playgroud)

这段代码会

  1. fileName(String,文件的绝对路径)创建InputStream
  2. create ObjectInputStream,读取保存在该文件中的对象
  3. 将创建HashMap对象,保存到Map map变量

所以这意味着,在文件中,有一个类型的对象HashMapMap使用此代码进行转换