草庐IT

SERIALIZATION

全部标签

java - 序列化:java.io.StreamCorruptedException:无效的流 header :0AACED00

我是一名练习文件IO技能的学生,我遇到了使用ObjectInputStream从文件中读取对象的问题。该代码一直抛出InvalidClassException,我无法找到代码是如何在线或通过反复试验抛出它的。这是我的代码:importjava.io.*;importjava.util.ArrayList;importjava.util.List;publicclassReadFromFile{Stringfilename;Listos;publicReadFromFile(Stringfilename){this.filename=filename;os=newArrayList();

java - java中默认和生成的串行版本uid有什么区别?

我不知道在java中的什么地方使用默认serialVersionUID或生成的serialVersionUID?privatestaticfinallongserialVersionUID=4125965356358329466L;//generatedprivatestaticfinallongserialVersionUID=1L;//default 最佳答案 SerialVersionID用于序列化和反序列化对象。Java会识别要反序列化的字节是否与本地类版本匹配,否则将抛出异常。这在执行RMI或持久化对象结构时很重要。序列化

java - 使用 JDom 格式化 XML,每行一个属性

我使用JDom进行XML解析/格式化。我希望将长行的属性分成几行。喜欢:进入:根据JDomFAQ,JDom可以转化为标准的DOM和SAX事件。因此,任何支持SAX或DOM并能够进行如此漂亮的渲染的渲染器都会很棒。提前致谢。 最佳答案 好的,我没有找到任何类这样做。所以我自己实现了一个作为org.jdom.output.XMLOutputter的子类importjava.io.IOException;importjava.io.Writer;importjava.util.*;importorg.jdom.Attribute;impo

java - 如何在没有类文件的情况下从序列化的 Java 对象中检索对象状态

我有一个包含Java序列化对象(值对象)的二进制文件,但我无权访问为创建这些对象而序列化的类。没有类文件,JVM不允许我使用objectInputStreamInstance.readObject()读取对象并正确地抛出java.lang.ClassNotFoundException。是否有一个库可以帮助提取XML或其他标准化格式的数据?例如,如果下面的Person类被序列化并存储在一个文件中,我想从中提取数据:类定义classPersonimplementsSerializable{intage;Stringname;publicPerson(intage,intname){this

java - Kryo 序列化依赖于 Java 版本?

使用Kryo反序列化序列化对象(从文件)时,出现以下异常:java.lang.ExceptionInInitializerError(...)Causedby:com.esotericsoftware.kryo.KryoException:(...)Serializationtrace:(...)atcom.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:125)atcom.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSer

java - 在 GWT 中序列化对象

使用GWT将bean序列化为字符串的最简单方法是什么?我不喜欢使用GWT.create()调用。 最佳答案 免责声明:在URL上序列化一个bean对于GWT来说并不是一个好主意。我了解到,如果需要将数据放在URL上,它应该尽可能少,并且只需要恢复页面状态所必需的。看看Gmail如何使用它的历史标记,您会发现它非常少。免责声明:对于我参与的GWT项目,我只是简单地写出了用定界符分隔的bean的值。当读回这些值时,我使用了String.split()方法来获取一个数组。使用该数组,我将值分配回正确的bean属性。在代码中:publicc

java:为自定义序列化分配对象引用 ID

出于各种原因,我有一个自定义序列化,我将一些相当简单的对象转储到数据文件中。可能有5-10个类,生成的对象图是非循环的并且非常简单(每个序列化对象都有1或2个对另一个序列化对象的引用)。例如:classFoo{finalprivatelongid;publicFoo(longid,/*otherstuff*/){...}}classBar{finalprivatelongid;finalprivateFoofoo;publicBar(longid,Foofoo,/*otherstuff*/){...}}classBaz{finalprivatelongid;finalprivateLi

java - GWT 自定义字段序列化问题

考虑一个不可变类Foo(一个由ID和名称组成的POJO),它需要序列化以便将数据从服务器发送到客户端。publicfinalclassFoo{privatefinalintm_id;privatefinalStringm_displayName;privateFoo(finalintid,finalStringdisplayName){m_id=id;m_displayName=displayName;}publicstaticFoocreate(finalintid,finalStringdisplayName){//Someerrorcheckingoccurshere....m_

java - Json动态反序列化与 jackson

我已经看过问题“Jacksondynamicpropertynames”,但它并没有真正回答我的问题。我想反序列化这样的东西:publicclassResponse{privateStringstatus;privateErrorerror;privateTdata;}但数据可以有不同的名称,因为存在不同的服务并返回具有一些不同数据的相同结构。例如“用户”和“契约(Contract)”:{response:{status:"success",user:{...}}}或{response:{status:"failure",error:{code:212,message:"Unablet

java - 反序列化是如何工作的?

据我所知,不会调用其对象被序列化的类的构造函数,而是调用第一个不可序列化构造函数的无参数构造函数。现在考虑以下代码publicclassSerializeDemoimplementsSerializable{privateStringname;intage;//default0publicSerializeDemo(Stringname,booleansetAge){this.name=name;if(setAge){this.age=18;}}@OverridepublicStringtoString(){return"Nameis"+name+"andageis"+age;}pub