2016-03-02 28 views
0

我有我在.net中我重写一个很老的Java应用程序,我不能改变Java代码或以任何方式旧文件。转换序列化Java对象到C#对象

他们创建并存储10,000匹配这个article描述的格式,一串序列化的Java对象的文件。

问题

  • 我如何解析在C#中这些Java对象?
  • 这甚至可能吗?

最后,如果我可以读入和序列化数据,我可以将它存储为更通用的格式。当我尝试反序列化文件时,我遇到了异常,通常告诉我二进制格式无效。

+2

最简单的方法是用Java编写的转换程序,有它读取文件,并在一些C#写回可以理解,最好的东西跨平台像JSON ,XML,CSV,ProtocolBuffers ... 10.000文件也听起来像你可能会考虑把它放到数据库中。 – Thilo

+2

你会更好编写Java程序的对象图加载到内存(使用现有的Java代码的对象定义),然后写出来像XML或(更可能是有用的)JSON这可能是一个格式由.net代码读回。 –

回答

1

类似的问题已经被问here

您有几个选项。一个是编写一个能够以Java的序列化格式(链接的)读取对象的C#类,但这很可能会耗费很多时间。使用C#的本地反序列化算法将不起作用,因为格式不同(正如您遇到的那样)。

一种更简便的方法是阅读使用Java程序文件的对象,并将它们保存为一个更通用的格式,例如JSON。 (作为一个答案推荐另一个问题here