微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 序列化对象的文件扩展名

将可序列化对象保存到磁盘时,什么文件扩展名最合适?
FileOutputStream fos = null;
ObjectOutputStream out = null;
try {
    fos = new FileOutputStream(filename);
    out = new ObjectOutputStream(fos);
    out.writeObject(mySerializableObject);
} catch (IOException ex) {
    ex.printstacktrace();
} finally {
    IoUtils.closeQuietly(out);
}

解决方法

“.ser”是文件后缀- http://www.file-extensions.org/ser-file-extension的合理选择

但是,您可以认为它使用什么后缀几乎没有区别,只要这不会与其他常用的应用程序后缀冲突.

Java序列化对象文件只能在其类路径上具有相关类的Java应用程序(以正常方式)读取.一个一刀切的“.ser”后缀没有提供这些类可能是什么的线索,应用程序启动框架应该在哪里找到它们.因此,您将无法设置Windows风格的文件关联以提供双击应用程序启动.

Is there a way i can view or edit the ser file ??

可能,但很难,只有在某些条件下.

文件内容高度依赖于被序列化的类.现在可以确定该类的名称,以及(在某些情况下)序列化字段的名称和类型.但是,如果该类使用自定义序列化/外部化,则该表示将是一个不透明的二进制数据块,文件中没有关于如何解码的线索.不透明的blob问题是相当常见的,因为Java SE类库中的许多重要类使用自定义序列化…以实现效率…因此,许多应用程序类也是如此.

另一种可能的方法是找到.ser文件中提到的所有类的.class文件,对对象进行反序列化,并使用反射来访问反序列化对象的字段.你甚至可以调整他们并对他们进行预留.但是,如果您没有所有.class文件的正确版本,这是非启动器.

原文地址:https://www.jb51.cc/java/124868.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐