最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java讀取json文件的2種方式例子

 更新時間:2023年07月06日 08:33:51   作者:amcomputer  
這篇文章主要給大家介紹了關(guān)于java讀取json文件的2種方式,在開發(fā)過程中有時會遇到需要讀取.json文件的需求,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

1 背景介紹

研發(fā)過程中,經(jīng)常會涉及到讀取配置文件等重復(fù)步驟,也行是.conf文件,也許是.json文件,但不管如何他們最終都需要進入到j(luò)ave的inputStream里面。下面以讀取.json文件為例

2 FileInputStream讀取

需要1個參數(shù):

  • fileName: 文件名,一般為絕對路徑,不然可能會找不到?;蛘吆蚸ava文件同一個路徑下
static String readWithFileInputStream(){
        String jsonString;
                //System.getProperty("user.dir")為獲取根目錄
                //File.separator為不同操作系統(tǒng)的分隔符,linux和win是不一樣的
                //tempFilePath該字符串里面為我們配置文件的路徑
               String fileName = "xx_config.json";
//                String tempFilePath = System.getProperty("user.dir") + File.separator + "resource" + File.separator + fileName;
//                System.out.print(tempFilePath);
        StringBuilder sb = new StringBuilder();
                try{
                    InputStream input = new FileInputStream(fileName);
                    byte[] buffer = new byte[1024];
                    int length = 0;
                    length = input.read(buffer);
                    while(length != -1){
                        sb.append(new String(buffer, 0 , length));
                        length = input.read(buffer);
                    }
                }catch (Exception e){
                    e.printStackTrace();
                }
        return    jsonString = sb.toString();
            }

最終返回一個String。然后通過JSON工具就可以轉(zhuǎn)為自己想讀取到模型啦。

    TargetConfig config = (TargetConfig) JSON.parseObject(jsonString, TargetConfig.class);

但該種方式不靈活,需要把路徑寫死,或者寫成絕對路徑。

3 ClassLoader讀取

需要2個參數(shù):

  • fileName: 文件名
  • ClassLoader: 類加載器,一般為當前類
    static String readWithClassLoader() throws IOException {
        String fileName = "xx_config.json";
       ClassLoader  classLoader =  TargetConfig.class.getClassLoader();
        BufferedReader reader = null;
            InputStream inputStream = classLoader.getResourceAsStream(fileName);
            reader = new BufferedReader(new InputStreamReader(inputStream));
            StringBuilder content = new StringBuilder();
            String line = reader.readLine();
            while (!StringUtil.isEmpty(line)) {
                content.append(line);
                line = reader.readLine();
            }
            return content.toString();
    }

和之前一樣,最終返回一個String。然后通過JSON工具就可以轉(zhuǎn)為自己想讀取到模型啦。

    TargetConfig config = (TargetConfig) JSON.parseObject(jsonString, TargetConfig.class);

但使用類加載讀取,可以不用寫死路徑。比第一種要靈活很多。

總結(jié)

到此這篇關(guān)于java讀取json文件的2種方式的文章就介紹到這了,更多相關(guān)java讀取json文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring?AOP?后置處理器使用方式

    Spring?AOP?后置處理器使用方式

    這篇文章主要介紹了Spring?AOP?后置處理器使用方式,文章圍繞主題相關(guān)內(nèi)容展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • Mybatis-Plus中updateById方法不能更新空值問題解決

    Mybatis-Plus中updateById方法不能更新空值問題解決

    本文主要介紹了Mybatis-Plus中updateById方法不能更新空值問題解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Java通用工程模塊bom包管理詳細代碼示例

    Java通用工程模塊bom包管理詳細代碼示例

    BOM本質(zhì)上是一個普通的POM文件,區(qū)別是對于使用方而言,生效的只有這一個部分,這篇文章主要介紹了Java通用工程模塊bom包管理的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2026-06-06
  • 2019年最新Java學(xué)習(xí)路線圖

    2019年最新Java學(xué)習(xí)路線圖

    不管你是不懂電腦的小白,還是已經(jīng)步入開發(fā)的大牛,這套路線路絕對不容錯過,路線圖的宗旨就是分享,專業(yè),便利,讓喜愛Java的人,都能平等的學(xué)習(xí),感興趣的同學(xué)可以了解一下
    2019-03-03
  • Spring中@Import的各種用法以及ImportAware接口詳解

    Spring中@Import的各種用法以及ImportAware接口詳解

    這篇文章主要介紹了Spring中@Import的各種用法以及ImportAware接口詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Java獲取本機IP的幾種常見方法

    Java獲取本機IP的幾種常見方法

    在Java編程中,我們經(jīng)常需要獲取本地或遠程計算機的IP地址,IP地址是用于唯一標識計算機的一組數(shù)字,它在網(wǎng)絡(luò)通信中起到重要的作用,下面將介紹幾種在Java中獲取IP地址的方法,并提供相應(yīng)的源代碼,需要的朋友可以參考下
    2025-05-05
  • 解決idea中maven項目打包成jar報錯:沒有主清單屬性的問題

    解決idea中maven項目打包成jar報錯:沒有主清單屬性的問題

    這篇文章主要給大家分享了idea中maven項目打包成jar,報錯沒有主清單屬性解決方法,文中有詳細的解決方法,如果又遇到同樣問題的朋友可以參考一下本文
    2023-09-09
  • java理論基礎(chǔ)函數(shù)式接口特點示例解析

    java理論基礎(chǔ)函數(shù)式接口特點示例解析

    這篇文章主要為大家介紹了java理論基礎(chǔ)函數(shù)式接口特點示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • Spring MVC攔截器的基本使用方法

    Spring MVC攔截器的基本使用方法

    這篇文章主要給大家介紹了關(guān)于Spring MVC攔截器的基本使用方法,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Spring MVC具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Java進行文件格式校驗的方案詳解

    Java進行文件格式校驗的方案詳解

    這篇文章主要為大家詳細介紹了Java中進行文件格式校驗的相關(guān)方案,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04

最新評論

张家界市| 陆河县| 江门市| 米易县| 织金县| 延长县| 隆回县| 开远市| 泗洪县| 彭州市| 探索| 邵阳市| 乐亭县| 濮阳县| 贡觉县| 上高县| 名山县| 叶城县| 勃利县| 新余市| 淮阳县| 额敏县| 东台市| 盐城市| 虎林市| 湖南省| 平谷区| 沧源| 洪湖市| 昔阳县| 洛隆县| 莒南县| 宿松县| 阳春市| 镇安县| 内乡县| 舞阳县| 屏东市| 沅江市| 武冈市| 岳西县|