打开以Java格式保存的未知文件

时间:2014-10-16 02:05:47

标签: java file parsing

我正在为公司进行数据恢复。他们需要一种特定的文件,在政府的java软件包中创建。文件名丢失,但文件本身包含项目名称。您只能在该软件中实际打开它们时找到它们,但文件本身不包含任何纯文本。有数千个文件,因此我们不能指望有人手动打开它们并更新文件名。

另外一个难点是这些文件有几种不同的格式:最新版本的软件不能只打开以前版本的文件,需要“转换”它们。这给我的印象是文件只是已保存的对象,并且每个软件版本都会更改其类,以至于旧文件无法再投射到新类中。或者其他的东西。我用java编程已经有一段时间了。 :)

在任何情况下,我“只是”想要读取该对象的单个属性。但是我没有用它来解析它(可以是其中之一,具体取决于文件保存的软件版本)。我有该软件的jar文件,但我希望我不需要开始分析整个软件包,看看它究竟做了什么。

所以我终于得到了我的问题:我可以打开这样一个文件(假设它确实是一个“保存的对象”),并以某种方式将其内容解析为纯文本?我确信,一旦完成,我可以检索项目名称的保存位置 - 希望在软件版本的相同位置。

1 个答案:

答案 0 :(得分:0)

如果它们是序列化对象,则文件将以魔术值0xACED开始,然后是协议版本号,目前为0x0005。

如果是这样,除了通过使用Java代码对其进行反序列化之外,您无法真正解析它,并且相关版本中的CLASSPATH上提供了所有相关类。原因是任何可序列化的类都可以提供自己的代码来写入流,因此只有该类才能正确理解。