欢迎来真孝善网,为您提供真孝善正能量书籍故事!

使用JAXB在Java中将实体类数据以XML格式保存到本地文件系统

时间:11-16 名人轶事 提交错误

很多朋友对于使用JAXB在Java中将实体类数据以XML格式保存到本地文件系统和不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

简单实现

首先我们看一下需要保存的数据类。它实际上是一个很常见的java实体类。

公开课学生{

私有int id;

私有字符串名称;

公共学生(int id,字符串名称){

这个.id=id;

this.name=名称;

}

公共int getId() {

返回ID;

}

公共无效setId(int id){

这个.id=id;

}

公共字符串getName() {

返回名称;

}

公共无效setName(字符串名称){

this.name=名称;

}

}由于可能需要保存多个账户信息,因此对上述实体类进行简单封装,作为要存储的实体类对象:

@XmlRootElement

公共类保存数据{

私人名单学生;

@XmlElement(name="学生")

公共ListgetStudents() {

回国学生;

}

公共无效setStudents(列表学生){

this.students=学生;

}

}最后读取数据:

公共类BeanToXml{

公共静态无效主(字符串[] args){

SaveData 数据=new SaveData();

列表列表=新的ArrayList();

list.add(new Student(1,"艾伦"));

list.add(new Student(2,"Tom"));

list.add(new Student(3,"丽丽"));

data.setStudents(列表);

BeanToXmlbeanToXml=new BeanToXml();

beanToXml.saveUserData(数据,SaveData.class);

}

//获取本地保存的文件System.getProperty("user.home") 获取用户的主目录。其他相关值请参见附录。

私有文件getSavePath() {

文件file=new File(System.getProperty("user.home") + File.separator + "test");

if (!file.exists())

文件.mkdir();

file=new File(file.getPath() + File.separator + "test.xml");

返回文件;

}

/**

* 保存数据

*

* @param data 要保存的数据

* @param cls 数据bean的类对象

*/

私有无效saveUserData(T 数据,Classcls) {

尝试{

JAXBContext 上下文=JAXBContext.newInstance(cls);

Marshaller m=context.createMarshaller();

m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

//编组XML 并将其保存到文件中。

m.marshal(数据, getSavePath());

} catch (异常e) {

e.printStackTrace();

}

}

私有T loadUserData(Classcls) {

尝试{

JAXBContext 上下文=JAXBContext.newInstance(cls);

解组器um=context.createUnmarshaller();

//从文件中读取XML 并解组。

return (T) um.unmarshal(getSavePath());

} catch (异常e) {

e.printStackTrace();

返回空值;

}

}

}保存本地xml数据:

?xml version="1.0"encoding="UTF-8"standalone="yes"?1Allen2Tom3Lili

扩展

注解说明

第一个是用于标记顶级类或枚举的三个注释。它们可以一起使用并保留到010 -59000。

@XmlAccessOrder:用于标记运行时,将保留为顶级类或包。对从java 对象映射的xml 元素进行排序。有两个值: XmlAccessOrder.UNDEFINED:未排序。这是默认值。

XmlAccessOrder.ALPHABETICAL:按字母顺序排序。

关于使用JAXB在Java中将实体类数据以XML格式保存到本地文件系统到此分享完毕,希望能帮助到您。

用户评论

你与清晨阳光

原来可以用JAXB把实体类的数据转换成XML然后存到本地啊!挺有意思的。

    有15位网友表示赞同!

你tm的滚

之前都不知道这种方法,学习学习,以后可以用在项目里了

    有8位网友表示赞同!

刺心爱人i

这样能灵活管理数据,是不是比单纯写文件方便很多?

    有18位网友表示赞同!

独角戏°

JAXB这个工具听起来很专业,有详细教程吗?

    有13位网友表示赞同!

鹿叹

XML保存数据确实持久化好一点,Java真是一门强大语言。

    有15位网友表示赞同!

苏莫晨

实体类直接转 XML 感觉效率还是挺高的。

    有12位网友表示赞同!

呆檬

这种方法能兼容不同的操作系统吗?

    有5位网友表示赞同!

箜明

我目前刚接触Java,这知识点太新了,先收藏起来慢慢学习吧

    有9位网友表示赞同!

晨与橙与城

这个标题描述很清楚了,看起来入门难度也不高。

    有11位网友表示赞同!

灼痛

我想把一些游戏数据保存到本地文件,这种方法可以吗?

    有13位网友表示赞同!

爱你的小笨蛋

JAXB能实现序列化和反序列化吗?

    有19位网友表示赞同!

我没有爱人i

这篇文章大概讲讲具体的代码示例吗?太抽象了不太理解

    有11位网友表示赞同!

陌上花

用 JAXB 转成 XML 的时候,格式怎么控制啊?

    有6位网友表示赞同!

轨迹!

如果文件太大,会影响性能吗?

    有6位网友表示赞同!

暮光薄凉

这种方法有其他的优缺点吗?

    有17位网友表示赞同!

孤者何惧

JAXB 的安全性怎么样?

    有19位网友表示赞同!

风中摇曳着长发

听说XML文件比较容易被人解析,这样保存数据安全吗?

    有15位网友表示赞同!

盲从于你

有没有其他的技术可以代替 JAXB 实现这种功能呢?

    有13位网友表示赞同!

龙吟凤

如果要修改文件,要用 JAXB 重新将实体类转 XML 吗?

    有14位网友表示赞同!

【使用JAXB在Java中将实体类数据以XML格式保存到本地文件系统】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活