JAVA对象序列化保存为XML文件的工具类

java 代码
 
  1. import java.beans.XMLDecoder;  
  2. import java.beans.XMLEncoder;  
  3. import java.io.File;  
  4. import java.io.FileInputStream;  
  5. import java.io.FileNotFoundException;  
  6. import java.io.FileOutputStream;  
  7. import java.io.IOException;  
  8. import java.util.ArrayList;  
  9. import java.util.List;  
  10.   
  11. public class ObjectToXMLUtil {  
  12.   
  13.     /** 
  14.      * 把java的可序列化的对象(实现Serializable接口)序列化保存到XML文件里面,如果想一次保存多个可序列化对象请用集合进行封装 
  15.      * 保存时将会用现在的对象原来的XML文件内容 
  16.      *  
  17.      * @param obj 
  18.      *            要序列化的可序列化的对象 
  19.      * @param fileName 
  20.      *            带完全的保存路径的文件名 
  21.      * @throws FileNotFoundException 
  22.      *             指定位置的文件不存在 
  23.      * @throws IOException 
  24.      *             输出时发生异常 
  25.      * @throws Exception 
  26.      *             其他运行时异常 
  27.      */  
  28.     public static void objectXmlEncoder(Object obj, String fileName) {  
  29.         // 创建输出文件  
  30.         File fo = new File(fileName);  
  31.         // 文件不存在,就创建该文件  
  32.         if (!fo.exists()) {  
  33.             // 先创建文件的目录  
  34.             String path = fileName.substring(0, fileName.lastIndexOf('.'));  
  35.             File pFile = new File(path);  
  36.             pFile.mkdirs();  
  37.         }  
  38.         // 创建文件输出流  
  39.         FileOutputStream fos = null;  
  40.         XMLEncoder encoder = null;  
  41.         try {  
  42.             fos = new FileOutputStream(fo);  
  43.             // 创建XML文件对象输出类实例  
  44.             encoder = new XMLEncoder(fos);  
  45.             // 对象序列化输出到XML文件  
  46.             encoder.writeObject(obj);  
  47.             encoder.flush();  
  48.             // 关闭序列化工具  
  49.             encoder.close();  
  50.             // 关闭输出流  
  51.             fos.close();  
  52.         } catch (Exception e) {  
  53.             e.printStackTrace();  
  54.         } finally {  
  55.             if (encoder != null) {  
  56.                 encoder.close();  
  57.             }  
  58.             if (fos != null) {  
  59.                 try {  
  60.                     fos.close();  
  61.                 } catch (IOException e) {  
  62.                     e.printStackTrace();  
  63.                 }  
  64.             }  
  65.         }  
  66.     }  
  67.   
  68.     /** 
  69.      * 读取由objSource指定的XML文件中的序列化保存的对象,返回的结果经过了List封装 
  70.      *  
  71.      * @param objSource 
  72.      *            带全部文件路径的文件全名 
  73.      * @return 由XML文件里面保存的对象构成的List列表(可能是一个或者多个的序列化保存的对象) 
  74.      * @throws FileNotFoundException 
  75.      *             指定的对象读取资源不存在 
  76.      * @throws IOException 
  77.      *             读取发生错误 
  78.      * @throws Exception 
  79.      *             其他运行时异常发生 
  80.      */  
  81.     public static List objectXmlDecoder(String objSource) {  
  82.         List objList = new ArrayList();  
  83.         File fin = new File(objSource);  
  84.         FileInputStream fis = null;  
  85.         XMLDecoder decoder = null;  
  86.         try {  
  87.             fis = new FileInputStream(fin);  
  88.             decoder = new XMLDecoder(fis);  
  89.             Object obj = null;  
  90.             while ((obj = decoder.readObject()) != null) {  
  91.                 objList.add(obj);  
  92.             }  
  93.             fis.close();  
  94.             decoder.close();  
  95.         } catch (Exception e1) {  
  96.             e1.printStackTrace();  
  97.         } finally {  
  98.             if (decoder != null) {  
  99.                 decoder.close();  
  100.             }  
  101.             if (fis != null) {  
  102.                 try {  
  103.                     fis.close();  
  104.                 } catch (IOException e) {  
  105.                     e.printStackTrace();  
  106.                 }  
  107.             }  
  108.         }  
  109.         return objList;  
  110.     }  
  111.   
  112. }  
实现边缘实时动物检测:YOLOv5模型优化与树莓派4B部署全攻略 本文介绍了基于高性能计算机训练YOLOv5目标检测模型,并部署到树莓派4B实现实时动物检测的全流程。主要内容包括:1)在高性能计算机上通过Anaconda创建虚拟环境,安装YOLOv5项目并进行模型训练;2)将训练好的best.pt模型迁移到树莓派,配置轻量级Miniconda环境;3)连接树莓派摄像头,运行实时检测程序。该系统兼顾了训练效率和边缘设备部署的实用性,可广泛应用于智慧农业、生态监测等场景。文中详细说明了数据准备、环境配置和部署步骤,为开发轻量级目标检测系统提供了完整参考方案。 阅读详情

相关推荐

Fast-LIO2轮速计融合实战:打滑检测与协方差调参避坑指南

多传感器融合是提升移动机器人定位鲁棒性的关键手段。在激光雷达与惯性测量单元(IMU)紧耦合的基础上,加入轮式编码器作为额外的速度约束,能够有效抑制长走廊、重复纹理等退化场景下的漂移。其核心原理是通过运动学模型将轮速转换为机体系速度,并作为因子引入迭代误差状态卡尔曼滤波器(ESIKF)。然而,打滑现象与协方差参数设置是融合成败的关键。本文从工程实践出发,系统梳理了传感器配置、外参标定、打滑检测策略(运动学一致性、轮速自洽性)以及观测噪声协方差R与初始协方差P0的调参方法,并给出实测参数与问题排查速查表,为在F

weixin_34159110的博客 434

java序列化工具类(SerializationUtils)

是一个简单易用的 Java 工具类,极大地简化了序列化和反序列化操作。它不仅可以将对象转换为字节流,还可以进行深度复制。在日常开发中,尤其是在处理分布式系统、缓存和持久化场景时,它是一个非常实用的工具。不过,如果性能是关键因素,开发者可能需要考虑更高效的序列化框架。

Flying_Fish_roe的博客 2245

555定时器呼吸灯电路制作全攻略:从仿真到实物搭建(附避坑指南)

本文详细介绍了使用555定时器制作呼吸灯电路的完整流程,从基础原理到实物搭建,包括电路设计、元件选择、仿真验证、焊接技巧及调试优化。特别提供了避坑指南,帮助电子爱好者快速掌握这一经典DIY项目,实现美观的呼吸灯效果。

weixin_33734785的博客 402

java.beans.* 篇(2)Expression,Statement,Encoder,XmlEncoder,XmlDecoder使用案例

java.beans.* 篇(2)Expression,Statement,Encoder,XmlEncoder,XmlDecoder使用案例

峡谷电光马仔的博客 669

Zynq远程更新程序实战:从emmc到flash的完整方案解析

本文详细解析了Zynq远程更新程序的完整方案,重点探讨了从emmc到flash的实战操作。通过硬件连接限制破解、emmc配置技巧、flash擦写策略优化等关键技术点,提供了可靠的远程更新解决方案,特别适合需要频繁更新boot.bin的应用场景。

weixin_29163797的博客 179

Windows安装 OpenClaw详细教程(使用wsl2+ubuntu)

OpenClaw 是一款于 2026年1月 正式对外开源的个人AI助手平台(AI Agent),由 PSPDFKit 创始人彼得·斯坦伯格(Peter Steinberger) 开发。它不仅仅是一个聊天机器人,更是一个能够主动执行任务的“数字管家”。OpenClaw的核心特点是本地化部署、隐私可控以及强大的自动化执行能力。OpenClaw 项目在开发过程中经历过两次更名,最终定为现名:初名:Clawdbot(因与 Claude 名称过于相似引发侵权争议而改名)。

猿小白的博客 1008

浅析若干Java序列化工具

  在java中socket传输数据时,数据类型往往比较难选择。可能要考虑带宽、跨语言、版本的兼容等问题。比较常见的做法有: 采用java对象的序列化和反序列化 把对象包装成JSON字符串传输 Google工具protoBuf的开源 本文章所需要的序列化jar包都可以下载:http://download.csdn.net/d...

weixin_33912638的博客 293

ZYNQ GP总线实现PS与PL交互

3,完成 ZYNQ7 Processing System 的配置更改后,回到 Diagram 界面中,可以看到新出现了名为 M_AXI_GP0_ACLK、M_AXI_GP0 和 FCLK_CLK0 的接口,下面我们要对这些接口进行连接或引出。此处的偏移量,AXI的相邻寄存器偏移量相差4个字节,默认slv_reg0的偏移量是0,可以推导出slv_reg1,slv_reg2的偏移量分别为4和8,这里只用到了slv_reg0,所以偏移量为0。当然了,窗口数量的增加,势必会使得单个窗口的采样深度变小。

wangjie36的博客 7094

对象和xml相互转换工具XMLEncoder,XMLDecoder

基本的介绍:     1.XMLEncoder 类是 ObjectOutputStream 的互补替换,可用于生成 JavaBean 的文本表示形式,所使用方式与用 ObjectOutputStream 创建 Serializable 对象的二进制表示形式的方式相同               2.XMLDecoder 类用于读取使用 XMLEncoder 创建的 XML 文档,用途类

qingmuluoyang的博客 2821

PVE虚拟机运行不流畅,出现卡顿。

🏆本文收录于《优快云问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 3064

Vue2 - 最新详细实现网站内部打开预览 office 全套附件,在页面弹窗内解析预览 word文档、excel电子表格、ppt演示文稿(docx|xlsx|pptx|pdf|txt等文件)详细代码

vue2,nuxt2,office,文档,文件,查看预览,弹框预览,下载预览,如何预览pdf文档,打开查看,office全套文档,实现在线预览文件,小程序内预览word文件,手机h5移动端网页,nuxt文档在线预览,预览office最好用的插件,下载查看,Office在线预览,vue-office,vue如何使用vue-office教程示例,word文档,ppt,exce表格,预览电子文件,文档无法解析,打不开,报错,失效,保存下载,vue前端预览并下载doc、xls、pdf、txt及图片,vue2中预览p

🏆 前端领域优质创作者 1万+

java 对象序列化xml文件_JAVA对象序列化保存为XML文件的工具类

下载本文示例代码今天看了看java.beans包,发现了两个好东西,XMLEncoder和XMLDecoder。发现自己以前把从XML存取对象真是太费力气啦。做了小工具类,以后可以用用了。以下是引用片段:package com.imct.util; import java.beans.XMLDecoder; import java.beans.XMLEncoder; import java.io....

weixin_35927281的博客 189

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

JAVA对象序列化保存为XML文件的工具类 .

JAVA对象序列化保存为XML文件的工具类 来源:http://ysongren.blog.163.com/blog/static/6154220720086964558372/ 在这里开始书写日记、心情 …今天看了看java.beans包,发现了两个好东西,XMLEncoder和XMLDecoder。发现自己以前把从XML存取对象真是太费力气啦。做了小工...

weixin_34293902的博客 111

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java xmldecoder_java.beans包的XMLEncoder和XMLDecoder实现实体与xml转换

packagej2se.core.base;importjava.beans.XMLDecoder;importjava.beans.XMLEncoder;importjava.io.*;importjava.util.ArrayList;importjava.util.List;/***CreatedbyLenovoon2015/11/26.*/publicclassX...

weixin_34472954的博客 375

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

序列化和反序列化

经常能看到或者听到序列化或者反序列化这样的字眼 那么什么叫做序列化?什么又叫做反序列化呢? 概念 Java序列化就是指把Java对象转换为字节序列的过程。 而序列化最重要的作用就是在传递和保存对象时,保证对象的完整性和可传递性。对象转换为有序字节流,以便在网络上传输或者保存在本地文件中。 Java反序列化就是指把字节序列恢复为Java对象的过程。 反序列化的最重要的作用就是根据字节流中保存的对象状态及描述信息,通过反序列化重建对象。 综上我们可以总结出:序列化和反序列化的核心作用就是对象状态的保存和重建。(

qq_42192872的博客 132

java对象转xml-个人笔记

详情文件可以参考一下连接 参考连接 例子 @Data @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "Policy") //XML文件中的根标识 @XmlType(propOrder = { "productGroup", "sn", "updateUser", "updateLastDate", })

u011767319的博客 516

android 自带 xml解析

引用:http://www.oschina.net/code/snippet_587413_13452 package service; import java.io.InputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.List; import org.xmlpull.v1.X...

weixin_34234721的博客 139
上一篇: Flash builder 4 注册码
下一篇: Hibernate实现分页查询的原理分析
rq2
rq2
博客等级 码龄23年 1粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值