【问题标题】:How to read Java ObjectOutputStream generated file from File System?如何从文件系统中读取 Java ObjectOutputStream 生成的文件?
【发布时间】:2021-11-06 06:54:16
【问题描述】:

我是编程世界的新手,正在探索 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();
      }
   }
}
  • 机器配置:Window 10 | JDK 1.8

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

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

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

【问题讨论】:

    标签: java fileoutputstream objectoutputstream


    【解决方案1】:

    通常你不会。它是二进制文件。

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

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

    【讨论】:

      【解决方案2】:

      你需要使用 ObjectInputStream! 用FileInputStream读取de文件得到ois

      FileInputStream fis = new FileInputStream(new File());
      ObjectInputStram ois = new ObjectInputStram(fis));
      Employee e = (Enployee) ois.readObject();
      

      【讨论】:

        猜你喜欢
        • 2012-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多