您的位置:首页 > 娱乐 > 明星 > 广州网页设计软件培训_专业做英文网站的公司_网站查询网_网络推广赚钱平台有哪些

广州网页设计软件培训_专业做英文网站的公司_网站查询网_网络推广赚钱平台有哪些

2024/12/23 5:23:13 来源:https://blog.csdn.net/qq_46220373/article/details/144102227  浏览:    关键词:广州网页设计软件培训_专业做英文网站的公司_网站查询网_网络推广赚钱平台有哪些
广州网页设计软件培训_专业做英文网站的公司_网站查询网_网络推广赚钱平台有哪些

 依赖

       <dependency><groupId>com.thoughtworks.xstream</groupId><artifactId>xstream</artifactId><version>1.4.18</version></dependency>

实体类

package com.itheima.util;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
public class Person {private String name;private int age;
}

工具类

package com.itheima.one;import com.thoughtworks.xstream.XStream;import java.io.BufferedWriter;
import java.io.IOException;
import java.io.StringWriter;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;public class XmlUtils {private static final XStream xStream = new XStream();static {// 允许反序列化xStream.allowTypesByWildcard(new String[] { "**" });}/*** 将 Java 对象转换为 XML,并写入指定文件** @param <T>     要转换的 Java 对象类型* @param object  要转换的 Java 对象* @param filePath 输出的 XML 文件路径*/public static <T> void objectToXml(T object, String filePath) {// 为对象定义 XML 别名xStream.alias(object.getClass().getSimpleName(), object.getClass());StringWriter stringWriter = new StringWriter();stringWriter.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");// 将对象转为 XML 字符串xStream.toXML(object, stringWriter);// 获取文件路径Path path = Paths.get(filePath);// 使用 NIO 的 BufferedWriter 将 XML 字符串写入文件try (BufferedWriter writer = Files.newBufferedWriter(path, StandardCharsets.UTF_8)) {writer.write(stringWriter.toString());System.out.println("XML 内容已成功写入到文件:" + path.toString());} catch (IOException e) {System.err.println("写入 XML 文件时发生错误: " + e.getMessage());e.printStackTrace();}}/*** 从 XML 文件中读取数据并转换为 Java 对象** @param filePath XML 文件路径* @param clazz    要转换为的 Java 类* @param <T>      转换后的对象类型* @return 转换后的 Java 对象,如果读取或转换失败则返回 null*/public static <T> T xmlToObject(String filePath, Class<T> clazz) {Path path = Paths.get(filePath);// 验证文件是否存在if (!Files.exists(path)) {System.err.println("指定的文件不存在: " + filePath);return null;}try {String xml = new String(Files.readAllBytes(path), StandardCharsets.UTF_8);return (T) xStream.fromXML(xml, clazz);} catch (IOException e) {System.err.println("读取 XML 文件时发生错误: " + e.getMessage());e.printStackTrace();} catch (ClassCastException e) {System.err.println("转换 XML 数据时发生错误: " + e.getMessage());e.printStackTrace();}return null;}
}

测试

package com.itheima.one;import com.itheima.one.XmlUtils;
import com.itheima.util.Person;public class Main {public static void main(String[] args) {// 假设有一个对象 person,你需要将其转换为 XMLPerson person = new Person("John", 30);String filePath = "D:/Desktop/person.xml";// 调用静态方法将对象转换为 XML 并写入文件XmlUtils.objectToXml(person, filePath);// 从 XML 文件中读取并转换为对象Person readPerson = XmlUtils.xmlToObject(filePath, Person.class);System.out.println(readPerson);}
}

输出结果:

XML 内容已成功写入到文件:D:\Desktop\person.xml
Person(name=John, age=30)
D:/Desktop/person.xml文件内容: 
<?xml version="1.0" encoding="UTF-8"?>
<Person><name>John</name><age>30</age>
</Person>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com