Java中的数据文件

Java中的配置文件

Java自己的配置文件 – properties

properties文件的编写

  • 一般情况下,建议将文件存储在源码文件目录中
  • 他的格式是 键值对
  • 如:age=18 特别注意,不能打空格不能打空格!!!

在这里插入图片描述

  • 一般,我们将编程过程中要用到的文件路径;类路径配置在其中
  • 特别的:这种文件编码iso-8859-1,是不支持中文的 ,这里我的是中文的原因是因为,我的IDEA设置成了utf-8

properties文件的使用 – Properties类

  • 使用字节输出流加载文件
@Test
void test01(){
    Properties properties = new Properties();
    try {
        properties.load(new InputStreamReader(new FileInputStream("src\\test.properties"), StandardCharsets.UTF_8));//load方法加载文件
        System.out.println(properties.getProperty("name"));
        System.out.println(properties.getProperty("age"));
        System.out.println(properties.getProperty("gender"));
        //getProperty方法,获取键对应的值
    } catch (IOException e) {
        e.printStackTrace();
    }
}
/*
执行结果
张三
19
男
*/
  • 使用反射加载文件(类加载器)
@Test
void test02(){
    InputStream resourceAsStream = TestProperties.class.getClassLoader().getResourceAsStream("test.properties");
    Properties properties = new Properties();
    try {
        properties.load(resourceAsStream);
        System.out.println(properties.getProperty("name"));
        System.out.println(properties.getProperty("age"));
        System.out.println(properties.getProperty("gender"));
    } catch (IOException e) {
        e.printStackTrace();
    }
}
/*
执行结果
张三
19
男
*/

JSON和XML数据解析

  • 方便传输
  • 方便描述数据

XML(可扩展性标签语言):

  • 和它对应的就是HTML(超文本标记语言)
    • 例如 a标签 超链接
    • img标签,图片资源
    • li 列表等等
  • XML : 相比于HTML 优点在于 可自定义标签
编写格式
<?xml version="1.0" encoding="UTF-8" ?>
<对象名>
    <属性名>属性值</属性名>
    ...
    </对象名>
JAVA 对象生成 XML
  • 字符串拼接
@Test
void test01(){
    User user = new User("张三",10,'男');
    StringBuilder strXML = new StringBuilder();
    strXML.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"+"\n");
    strXML.append("<User>\n");
    strXML.append("<name>"+user.getName()+"</name>\n");
    strXML.append("<age>"+user.getAge()+"</age>\n");
    strXML.append("<gender>"+user.getGender()+"</gender>\n");
    strXML.append("</User>");
    System.out.println(strXML);
}
/*
执行结果
<?xml version="1.0" encoding="UTF-8" ?>
<User>
<name>张三</name>
<age>10</age>
<gender>男</gender>
</User>
*/
  • dom4j包
/*
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
*/
@Test
void test(){
    Document document = DocumentHelper.createDocument();

    Element root = document.addElement("user");

    Element author1 = root.addElement("name")
            .addText("张三");

    Element author2 = root.addElement("age")
            .addText("10");

    Element author3 = root.addElement("gender")
            .addText("男");

    FileWriter out = null;
    try {
        out = new FileWriter("user.xml");
        document.write(out);
        out.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

}
/*执行结果:
生成user.xml文件
文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<user><name>张三</name><age>10</age><gender>男</gender></user>
*/

JSON(JavaScript simple objet nation)

创建JavaScript的两种方法
  • let obj = new Object()
let obj = new Object();
obj.name = "张三";
obj.age = 18 ;
  • var obj = {}
var obj = {
    "name":"张三",
    "age":18
}
  • 多个对象
{
users:[
{},{},{}
]
}
java对象和json数据之间完成转换常用包
  • jackjson
  • fastjson //阿里巴巴
  • gson // 谷歌
序列化
@Test
void test(){
    User user = new User("张三",10,'男');
    Gson gson = new Gson();
    String s = gson.toJson(user);
    System.out.println(s);
}
/*
执行结果
{"name":"张三","age":10,"gender":"男"}
*/
反序列化
@Test
void test01(){
    String s = "{\"name\":\"张三\",\"age\":10,\"gender\":\"男\"}";
    Gson gson = new Gson();
    User user = gson.fromJson(s, User.class);
    System.out.println(user);
}
/*
执行结果
User{name='张三', age=10, gender=男}
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值