如何从文件系统中读取 Java ObjectOutputStream 生成的文件?
Posted
技术标签:
【中文标题】如何从文件系统中读取 Java ObjectOutputStream 生成的文件?【英文标题】:How to read Java ObjectOutputStream generated file from File System? 【发布时间】: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 文件?
【问题讨论】:
【参考方案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();
【讨论】:
以上是关于如何从文件系统中读取 Java ObjectOutputStream 生成的文件?的主要内容,如果未能解决你的问题,请参考以下文章