加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 16:36:02 所属栏目:Java 来源:网络整理
导读:将可序列化对象保存到磁盘时,什么文件扩展名最合适? FileOutputStream fos = null;ObjectOutputStream out = null;try { fos = new FileOutputStream(filename); out = new ObjectOutputStream(fos); out.writeObject(mySerializableObject);} catch (IOExc
将可序列化对象保存到磁盘时,什么文件扩展名最合适?
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文件的正确版本,这是非启动器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读