草庐IT

SERIALIZATION

全部标签

java - 序列化哈希表,Java

我以前从未使用过序列化。我想除了我的“Q”大小写转换的最后一部分外,其他都没有问题。publicclassTest{publicstaticvoidmain(Stringargs[]){Storestore=newStore();FileOutputStreamfos;ObjectOutputStreamoos=null;try{fos=newFileOutputStream(newFile("table.obj"));oos=newObjectOutputStream(fos);}catch(IOExceptione1){e1.printStackTrace();}这继续包含更多代码

java - 序列化要由 Java 等反序列化的 C 结构的最佳方法

目前,我正在使用fread()/fwrite()将C/C++结构中的一些数据保存并加载到文件中。这在这个C应用程序中工作时工作得很好(每当结构更改以将sizeof()参数更新为fread()/fwrite()时我都可以重新编译),但是我如何在事先不知道的情况下将此文件加载到其他程序中C结构的sizeof()s?特别是,我编写了另一个Java应用程序来可视化该C结构二进制文件中包含的数据,但我想要一个关于如何读取该二进制文件的通用解决方案。(而不是我必须在C结构发生变化时手动将sizeof()s放入Java应用程序源中......)我正在考虑序列化为某种类型的文本或XML,但我不确定从哪

java - 使用序列化将对象传递给另一个 JVM - 相同的 Java 版本和 jars(都运行我们的应用程序)

更新:现在使用map。想要向其他实例发送内容的类发送对象,即路由字符串。使用对象流,使用Javaserializable将对象写入servlet。先写String再写对象接收servlet将输入流包装在一个ObjectInputStream周围。首先读取字符串,然后读取对象。路由字符串决定是否进行。更通用的方法可能是发送类名及其声明的方法或Springbean名称,但这对我们来说已经足够了。原始问题了解基本方法,但需要详细步骤。也知道我可以使用Jaxb或RMI或EJB...但想使用纯序列化到bytearray然后编码将其从jvm1中的servlet1发送到jvm2中的servlet2(

java - Spring 无法通过requestBody将String转换为Date

我有以下代码:DTO:ClassMyDTO{importjava.util.Date;privateDatedateOfBirth;publicDategetDateOfBirth(){returndateOfBirth;}publicvoidsetDateOfBirth(DatedateOfBirth){this.dateOfBirth=dateOfBirth;}}ControllerpublicvoidsaveDOB(@RequestBodyMyDTOmyDTO,HttpServletRequesthttprequest,HttpServletResponsehttpRespons

java - 如何将数组中的项目添加到 SortedSet 中?

我有一个这样定义的SortedSet:SortedSetmessageCollection=newTreeSet(newComp());我有一组RatedMessage[]我不得不使用数组,因为集合缺少序列化功能,现在我需要重新构造它。有没有一种快速的方法可以将数组中的所有项再次添加到集合中? 最佳答案 Collections.addAll(messageCollection,array);功能上与Michael的回答相同,但正如javadoc所说:Addsallofthespecifiedelementstothespecifie

java - 如何将 Map<String,String> 编码为 Base64 字符串?

我喜欢将字符串的java映射编码为单个base64编码字符串。编码后的字符串将被传输到远程端点,并可能被不友善的人操纵。因此,应该发生的最糟糕的事情是无效的键值元组,但不应将任何其他安全风险放在一边。例子:Mapmap=...Stringencoded=Base64.encode(map);//somewhereelseMapmap=Base64.decode(encoded);是的,必须是Base64。Notlikethatorthatoranyotherofthese.是否有现有的轻量级解决方案(首选SingleUtils-Class)?还是我必须自己创建?还有比这更好的吗?//m

java - 在数据库中存储可序列化对象

我正在编写一个需要将对象写入数据库的应用程序。为了简单起见,我想序列化对象。但出于相同目的所需的ObjectOuputStream只有一个构造函数,该构造函数将OutputStream的任何子类作为参数。应该传递什么参数给它? 最佳答案 您可以传递一个ByteArrayOutputStream,然后将生成的stream.toByteArray()作为blob存储在数据库中。确保为类指定一个serialVersionUID,否则在添加/删除字段时会遇到困难。如果您需要更多人类可读的数据,还可以考虑用于对象序列化的xml版本-XMLEn

java - jackson ,序列化引用的一个属性

当序列化具有其他对象引用的Java对象时,我只需要序列化嵌套对象的一个​​属性(外键的通常情况,因此序列化对象引用的“id”属性)。忽略其他一切。例如,我有两个类需要序列化为JSON和XML(为清楚起见删除了JPA注释):关系:用户->(一对多)地址信息;另外:AddressInformation->(one-to-one)User@XmlRootElementpublicclassUser{privateStringid;privateStringfirstName;privateStringlastName;privateStringemail;privateAddressInfo

java - Java 中是否有类似于 C++ 中的 <reinterpret_cast> 的转换

我在我的函数消息数组中得到了字节和对象类型,我需要从字节中恢复对象。Java中是否有像C++中那样的强制转换? 最佳答案 不,你可以使用serialization相反。 关于java-Java中是否有类似于C++中的的转换,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4805058/

java - (java) ObjectInputStream反序列化对象的错误版本

这个问题在这里已经有了答案:Javasocket/serialization,objectwon'tupdate(2个答案)关闭7年前。我只是从一本Java书上学习网络,所以我有点菜鸟。我在书上和网上都找不到这个问题,所以我决定上网问问。书上说使用ObjectOutputStream和ObjectInputStream向不同的控制台发送和接收对象。现在,我能够成功接收我发送的对象——但只能接收一次。当我发送不同的对象时:随机字符串和整数以及无名实例,控制台具有所有正确的字段。但是,当我发送对象的实例、更改实例字段之一的值并重新发送对象时,inpustream会加载原始实例的值。因此,举