Java中的数据文件

Java中的配置文件

Java自己的配置文件 – properties

properties文件的编写

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

Java中的数据文件_第1张图片

  • 一般,我们将编程过程中要用到的文件路径;类路径配置在其中
  • 特别的:这种文件编码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 优点在于 可自定义标签

编写格式


<对象名>
    <属性名>属性值属性名>
    ...
    对象名>

JAVA 对象生成 XML

  • 字符串拼接
@Test
void test01(){
    User user = new User("张三",10,'男');
    StringBuilder strXML = new StringBuilder();
    strXML.append(""+"\n");
    strXML.append("\n");
    strXML.append(""+user.getName()+"\n");
    strXML.append(""+user.getAge()+"\n");
    strXML.append(""+user.getGender()+"\n");
    strXML.append("");
    System.out.println(strXML);
}
/*
执行结果


张三
10


*/
  • 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文件
文件内容:

张三10
*/

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=男}
*/

你可能感兴趣的:(javase,java,json,xml,开发语言)