首页 > 解决方案 > 如何从文件系统中读取 Java ObjectOutputStream 生成的文件?

问题描述

我是编程世界的新手,正在探索 JAVA 文件 I/O 操作,但发现奇怪的是,当我尝试从文件系统读取 ObjectOutputStream 生成的文件时,它显示的是字节数组类型的数据而不是文本可红色数据。

请注意,它允许我使用 ObjectInputStream 读取数据,但不能直接从文件系统读取数据。

我正在使用的代码:(参考:https ://www.tutorialspoint.com/java/java_serialization.htm )

public class Employee implements java.io.Serializable {
   public String name;
   
   public void mailCheck() {
      System.out.println("Mailing a check to " + name);
   }
}

public class SerializeDemo {

   public static void main(String [] args) {
      Employee e = new Employee();
      e.name = "Reyan Ali";
      
      try {
         FileOutputStream fileOut =
         new FileOutputStream("C:/Users/123/Documents/record.ser");
         ObjectOutputStream out = new ObjectOutputStream(fileOut);
         out.writeObject(e);
         out.close();
         fileOut.close();
         System.out.printf("Serialized data is saved.");
      } catch (IOException i) {
         i.printStackTrace();
      }
   }
}

当我在文本编辑器中打开文件时,它是这样的:

aced 0005 7372 0008 456d 706c 6f79 6565
025e 7434 67c6 123c 0200 0349 0006 6e75
....7274 0009 5265 7961 6e20 416c 69 

任何建议如何在文本编辑器中读取 ObjectOutputStream 文件?

标签: javafileoutputstreamobjectoutputstream

解决方案


一般你不会。它是二进制文件。

您可以在 Java 文档中找到有关格式的详细信息。但是您需要的不仅仅是简单的文本编辑器才能破译它。

我建议你选择不同的存储格式。有很多可供选择。XML 和 JSON 可能是最流行的。他们都有自己的优点和缺点。


推荐阅读