15_特殊文件

Properties 属性文件

从 properties 文件中读取数据
import java.io.FileReader;
import java.util.Properties;
import java.util.Set;

public class Test {
    public static void main(String[] args) throws Exception {
        // 1. 创建一个 Properties 对象出来(它是一个键值对集合,空容器)
        Properties properties = new Properties();
        System.out.println(properties);  // {}

        // 2. 开始加载属性文件中的键值对数据到 properties 对象中去
        properties.load(new FileReader("输入路径"));
        System.out.println(properties);

        // 3. 具体输出内容
        System.out.println(properties.getProperty("Jack"));
        System.out.println(properties.getProperty("Peter"));

        // 4. 遍历全部的键和值
        Set<String> keys = properties.stringPropertyNames();
        for (String key : keys) {
            String value = properties.getProperty(key);
            System.out.println(key + ":" + value);
        }

        // 另外一种遍历方式
        properties.forEach((k, v) -> {
            System.out.println(k + "--->" + v);
        });
    }
}
写数据到 properties 文件中
import java.io.FileWriter;
import java.util.Properties;

public class Test {
    public static void main(String[] args) throws Exception {
        // 1. 创建一个 Properties 对象出来,先用它存储一些键值对数据
        Properties properties = new Properties();
        properties.setProperty("Jack", "23");
        properties.setProperty("Peter", "35");
        properties.setProperty("Tony", "29");

        // 2. 把 properties 对象中的键值对数据存储到属性文件中去
        properties.store(new FileWriter("E:/Desktop/temp.properties"), "这里写注释信息");

    }
}

特殊文件:XML文件

认识 XML
  • XML(全称 EXtensible Markup Language,可扩展标记语言)
  • 本质是一种数据的格式,可以用来存储复杂的数据结构和数据关系
XML 特点
  • XML 中的 “<标签名>” 称为一个标签或元素,一般是成对出现的
  • XML 中的标签名可以自己定义(可扩展),但是必须要正确的嵌套
  • XML 中只能有一个根标签
  • XML 中的标签可以有属性
  • 如果一个文件中存放的是 XML 格式的数据,这个文件就是 XML 文件,后缀一般写成 .xml
解析 XML 文件
  • 注意:程序员并不需要自己写原始的 IO 流代码来解析 XML,难度较大,也相当繁琐!
  • 其实,有很多开源的,好用的,解析 XML 的框架,最知名的是:Dom4j(第三方研发的)
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.List;

public class Test {
    public static void main(String[] args) throws Exception {
        // 1. 创建一个 Dom4J 框架提供的解析器对象
        SAXReader saxReader = new SAXReader();

        // 2. 使用 saxReader 对象把需要解析的 XML 文件读成一个 Document 对象
        Document document = saxReader.read("文件路径");

        // 3. 从文档对象中解析 XML 文件的全部数据
        Element root = document.getRootElement();
        System.out.println(root.getName());

        // 4. 获取根元素下的全部一级子元素
        List<Element> elements = root.elements();
        for (Element element : elements) {
            System.out.println(element.getName());
        }

        // 5. 获取当前元素下的某个子元素
        Element people = root.element("people");
        System.out.println(people.getText());

        // 如果下面有很多子元素 user,默认获取第一个
        Element user = root.element("user");
        System.out.println(user.elementText("name"));  // 取出文本
        System.out.println(user.elementTextTrim("name"));  // 取出文本,并去除前后的空格

        // 6. 获取元素的属性信息
        // 方式一
        System.out.println(user.attributeValue("id"));
        // 方式二
        Attribute id = user.attribute("id");  // 获取对象
        System.out.println(id.getName());
        System.out.println(id.getValue());
    }
}

你可能感兴趣的:(Java中级,java)