Sve*_*ven 3 c# java deserialization
我有一个java项目,它将一些对象和ints序列化为一个具有类似函数的文件
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeInt(RANK_SIZE);
oos.writeObject(_firstArray);
oos.writeObject(_level[3]);
oos.writeObject(_level[4]);
...
Run Code Online (Sandbox Code Playgroud)
现在我无法用C#反序列化该文件(试过BinaryFormatter),因为它显然只能将整个文件反序列化为单个对象(或数组,但我有不同长度的不同对象).
我首先尝试将这些文件的生成移植到C#,但是失败了.这些文件是小,我不应该产生他们自己.
我是否需要更改这些文件在Java中生成的方式,还是可以以任何方式对其进行反序列化?
Ern*_*ill 10
标准.NET框架中没有任何内容知道如何反序列化Java对象.理论上,您可以使用Java序列化规范并在C#中编写自己的反序列化代码.但这将是一个庞大而复杂的项目,我不认为你会发现很多客户对它的使用感兴趣.
更简单的方法是更改序列化数据以使用可移植格式的方式:JSON或某种形式的XML.Java和C#库都可以处理这种格式,总的工作量会减少几个数量级.我非常喜欢第二种方法.