java 中讀取 properties/xml/json 文件

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

這里只循環(huán)了一層,可以利用遞歸把每一項都讀出來。以及一些增刪改的操作可以參考這篇

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現,斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,275評論 6 342
  • slowhot閱讀 281評論 3 3
  • 銀色的月光,水一樣灑在身上,于是,整個人都被月色融化了。 他很享受一個人獨處的時光,可以肆無忌憚地陶醉于月色的輕柔...
    阿果悠悠閱讀 486評論 0 9
  • 9月10日-16日,High C的我、High I的梅老師和High S的小楊三人進行了蓄謀已久、說走就走的為期一...
    武林修行閱讀 451評論 0 2

友情鏈接更多精彩內容