Tag:

如何序列化ArrayList 2x并且不要过度编写已经存在的ArrayList JAVA

我不得不为我的程序创建一个管理面板来序列化更多对象,它的作用是什么,它将对象(String,String)保存到arraylist中,并且arraylist通过序列化保存到文件中。 当试图将另一个对象添加到arraylist时,程序首先将文件内容反序列化为arraylist,因为如果不这样做,我将如何访问文件中已存在的对象。 但是在添加对象3时会发生类似这样的事情 (安慰) 索引0 [[Word:word1 – 提示:提示1],Word:word2 – 提示:hint2] 怎么解决这个? 我想我应该删除旧的arraylist每次创建一个新的对象,但我不知道该怎么做,有什么我可以做的编辑文件中的旧arraylist而不是删除它。 提前致谢 enter code here class Admin{ ArrayList al = new ArrayList(); public void ifwordsarepresent(){ try { FileInputStream fis = new FileInputStream(“D:/serial.txt”); ObjectInputStream ois = new ObjectInputStream(fis); if(fis.available()>0){ try { try { al.add((ArrayList) ois.readObject()); addingwords(); ois.close(); } catch public void addingwords(){ try { try […]

gemfire自定义序列化无济于事

我使用gemfire作为我的缓存。 缓存堆大小远高于100GB。 我发现当我们从客户端将数据放入gemfire缓存时,它会将数据序列化并发送到服务器,而在服务器上,数据以序列化forms存储。 问题: 当我尝试执行任何on-server函数调用时,它会开始反序列化数据并且它非常耗时,有时需要一个多小时来迭代缓存中的对象。 (对象数量接近600万)。 我尝试使用gemfire自定义序列化(DataSerializer类)。 并且所有数据在缓存中所占用的内存量大约为60GB,如果我使用Java默认序列化则相同。 我尝试使用一个名为Kryo https://github.com/EsotericSoftware/kryo的库,这确实有很大帮助,但我仍然不明白为什么gemfire序列化对我没有帮助,因为我正在单独序列化该类的每个属性因此编写类标题和任何其他元数据不应该有任何负担。 任何帮助将非常感激。

序列化循环对象树 – StackOverflowError – 需要自定义序列化代码

我正在制作一个Android应用程序,我有一个双向循环对象树,我需要序列化以填充Sqlite数据库中的blob字段。 但是默认的序列化实现会向我抛出StackOverflowError(底部的堆栈跟踪)。 但是我没有编写自定义java序列化代码的经验来避免这种情况。 我这个线程( 在Java中序列化对象时的StackOverflowError )他谈到了这个问题,但是在我的情况下如何实现它我真的不知道: 可以为这样的列表类定义一个writeObject()方法,当第一个链接被序列化时,只需遍历列表并迭代地序列化每个链接; 这将阻止使用默认的递归机制。 这是我的对象模型(看1 / M,而不是其他标志): 这是我用来将对象模型序列化为字节数组的方法(正确的不那么重要): public byte[] serialize(Object object) { byte[] buf = null; try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutput out = new ObjectOutputStream(bos); out.writeObject(object); out.close(); buf = bos.toByteArray(); } catch (IOException e) { e.printStackTrace(); } return buf; } 自定义序列化function: private void writeObject(java.io.ObjectOutputStream out) throws IOException […]

XStream不会调用readObject()

我有这样建模的代码: class A { private transient Foo foo = new Foo(); private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); foo = new Foo(); } } class B extends A {} 我将readObject()添加到A中,以便在反序列化期间,将初始化瞬态foo 。 但是,我在代码中遇到了断点,并且可以看到XStream根本没有调用readObject()。 我也尝试在类B中使用readObject()来调用A中的initFoo()函数,但这也不起作用。 网站上的常见问题解答似乎并不意味着任何其他样板是必要的。 为什么不被召唤?

在Jackson中序列化/反序列化自定义Map

我有一个非常简单的Map我希望在Jackson中序列化和反序列化,但我无法让它工作。 我尝试过以下方法: @JsonSerialize(keyUsing=TurnKeySerializer.class) @JsonDeserialize(keyUsing = TurnKeyDeserializer.class) Map publicTurns = new TreeMap(); @JsonIgnoreProperties(ignoreUnknown = true) @Data //Creates Getter/Setter etc public class TurnKey implements Comparable { private final int turnNumber; private final String username; public TurnKey(int turnNumber, String username) { this.turnNumber = turnNumber; this.username = username; } @Override public int compareTo(TurnKey o) { int v = Integer.valueOf(turnNumber).compareTo(o.getTurnNumber()); […]

如何使用jackson遍历生成的json模式并将自定义属性放在json模式中

{ “type”: “object”, “properties”: { “name”: { “type”: “string” }, “id”: { “type”: “string” }, “i”: { “type”: “integer” }, “p”: { “type”: “object”, “properties”: { “name”: { “type”: “string” }, “id”: { “type”: “string” }, “i”: { “type”: “integer” }, “p1”: { “type”: “object”, “properties”: { “name”: { “type”: “string” }, “id”: { “type”: […]

使用Groovy将bean序列化和反序列化为json

我已经通过groovy http://www.infoq.com/news/2014/04/groovy-2.3-json阅读了有关json的新闻。 所以我尝试使用本地方法(de)序列化包含日期的groovy bean。 但我有问题,使用JsonOutput.toJson(对象)和JsonObject.fromObject()与java.util.Date String jsonDat a= groovy.json.JsonOutput.toJson(contact) Contact reloadContact = new Contact(net.sf.json.JSONObject.fromObject(jsonData)) 在groovy 2.3+中使用本机方法的正确方法是什么? 否则,我可以去另一个像gson这样的图书馆( http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/ ) package test import groovy.json.JsonOutput import net.sf.json.JSONObject class JsonTest { public static void main(String[] args) { JsonTest test = new JsonTest() test.serialization() } public void serialization(){ Contact contact = new Contact() contact.name = ‘John’ contact.registration = Date.parse(‘dd/MM/yyyy’, […]

Serializable Singleton Instance的readResolve()方法的实现

我试图通过添加readResolve()方法编写Serializable Singleton类。 我的目的是在序列化时获得与对象状态相同的对象。 下面是我的测试示例代码: import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; public class SingletonDemo { public static void main(String[] args) { Singleton obj = Singleton.getInstance(); System.out.println(“After NEW Object creation : ” + obj); obj.i = 5; System.out.println(“Object modified”); System.out.println(“After Object 1st Modification : ” + obj); serializeMe(); System.out.println(“Serialized […]

JSON使用google-gson序列化/反序列化generics类型

好吧,我必须承认我不擅长Java中的generics类型 我使用JavaScriptSerializer在C#中编写了一个JSON序列化/反序列化类 private static JavaScriptSerializer js = new JavaScriptSerializer(); public static T LoadFromJSONString(string strRequest) { return js.Deserialize(strRequest); } public static string DumpToJSONString(T rq) { return js.Serialize(rq); } 它在C#中运行良好。 现在我正在尝试转换或至少在Java中编写另一个JSON序列化/反序列化类。 我已经尝试过flexjson和google-gson,但我不知道如何在Java中指定。 有人可以帮帮我吗? 顺便说一句,我更喜欢google-gson

静态类变量和序列化/反序列化

从SCJP 6学习指南 – 有一个问题要求输出以下有关序列化的代码: import java.io.*; public class TestClass { static public void main(String[] args) { SpecialSerial s = new SpecialSerial(); try { ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(“myFile”)); os.writeObject(s); os.close(); System.out.print(++sz + ” “); s = null; // makes no difference whether this is here or not ObjectInputStream is = new ObjectInputStream(new FileInputStream(“myFile”)); SpecialSerial […]