美文网首页
java 中读取 properties/xml/json 文件

java 中读取 properties/xml/json 文件

作者: Ethan_zyc | 来源:发表于2018-11-10 16:28 被阅读32次

    java 项目中很重要的一步就是读取配置文件,主要是 properties 和 xml 文件,json 文件没见过,但觉得 json 文件和这两个类似,就顺便看了一下,前端最常用的配置文件不就一个 package.json 嘛。

    image-20181110155441844

    这是本文代码的文件结构,很简单。

    需用用的的 jar 包

    image-20181110160043613

    网上很容易找到,如果找不到可以私信我。

    读取 properties 文件

    test.properties 中的内容:

    name=ethan
    home=jiangsunantong
    age=24
    

    代码:

    private static void readProperties() throws IOException {
        Properties properties = new Properties();
        properties.load(new FileInputStream("resources/test.properties"));
        String propName = properties.getProperty("name");
        System.out.println("propName:" + propName);
    }
    

    输出:

    propName:ethan
    

    读取 xml 文件

    demo.xml 中的内容:

    <?xml version="1.0" encoding="utf-8" ?>
    <students color="red">
        <student>
            <name>ethan</name>
            <age>20</age>
        </student>
        <student>
            <name>ethan1</name>
            <age>21</age>
        </student>
        <student>
            <name>ethan2</name>
            <age>22</age>
        </student>
        <student>
            <name>ethan3</name>
            <age>23</age>
        </student>
    </students>
    

    代码:

    private static void readXML() throws DocumentException {
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read(new File("resources/demo.xml"));
        Element element = document.getRootElement();
        Attribute attribute = element.attribute("color");
        System.out.println(attribute.getValue());
        List<Element> list = element.elements("student");
        for (Element em : list) {
            System.out.println(em.element("name").getText());
            System.out.println(em.element("age").getText());
        }
    }
    

    输出:

    red
    ethan
    20
    ethan1
    21
    ethan2
    22
    ethan3
    23
    

    这里采用的是 Dom4j 解析,还有别的方法可以参考这篇

    读取 json 文件

    这里需要注意一下,我一开始运行的时候会报这个错:

    image-20181110161237694

    查看源代码:

    image-20181110161448615 image-20181110161549422

    很明显问题在于我的 json 文件中出现了回车或者换行符,也就是说整个 json 文件只能有一行。

    image-20181110161736268

    这是修改之前的,可以利用这个正则表达式替换一下:\r|\n|\s,虽然空格不影响,但还是一起删除了。

    修改之后:

    {"name":"ethan","age":18,"books":[{"bName":"java","price":80},{"bName":"js","price":60}]}
    

    代码:

    private static void readJson() throws IOException, JSONException {
        BufferedReader bufferedReader = new BufferedReader(new FileReader("resources/test.json"));
        String line = null;
        while ((line = bufferedReader.readLine()) != null) {
            JSONObject jsonObject = new JSONObject(line);
            Iterator<String> keys = jsonObject.keys();
            while ((keys.hasNext())) {
                String key = keys.next();
                System.out.println(key + ":" + jsonObject.get(key));
            }
        }
    }
    

    输出:

    books:[{"bName":"java","price":80},{"bName":"js","price":60}]
    name:ethan
    age:18
    

    这里只循环了一层,可以利用递归把每一项都读出来。以及一些增删改的操作可以参考这篇

    相关文章

      网友评论

          本文标题:java 中读取 properties/xml/json 文件

          本文链接:https://www.haomeiwen.com/subject/lynzxqtx.html