java读取json文件的2种方式例子

 更新时间:2023年07月06日 08:33:51   作者:amcomputer  
这篇文章主要给大家介绍了关于java读取json文件的2种方式,在开发过程中有时会遇到需要读取.json文件的需求,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

1 背景介绍

研发过程中,经常会涉及到读取配置文件等重复步骤,也行是.conf文件,也许是.json文件,但不管如何他们最终都需要进入到jave的inputStream里面。下面以读取.json文件为例

2 FileInputStream读取

需要1个参数:

  • fileName: 文件名,一般为绝对路径,不然可能会找不到。或者和java文件同一个路径下
static String readWithFileInputStream(){
        String jsonString;
                //System.getProperty("user.dir")为获取根目录
                //File.separator为不同操作系统的分隔符,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工具就可以转为自己想读取到模型啦。

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

但该种方式不灵活,需要把路径写死,或者写成绝对路径。

3 ClassLoader读取

需要2个参数:

  • 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工具就可以转为自己想读取到模型啦。

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

但使用类加载读取,可以不用写死路径。比第一种要灵活很多。

总结

到此这篇关于java读取json文件的2种方式的文章就介绍到这了,更多相关java读取json文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring AOP 后置处理器使用方式

    Spring AOP 后置处理器使用方式

    这篇文章主要介绍了Spring AOP 后置处理器使用方式,文章围绕主题相关内容展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • Mybatis-Plus中updateById方法不能更新空值问题解决

    Mybatis-Plus中updateById方法不能更新空值问题解决

    本文主要介绍了Mybatis-Plus中updateById方法不能更新空值问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Java通用工程模块bom包管理详细代码示例

    Java通用工程模块bom包管理详细代码示例

    BOM本质上是一个普通的POM文件,区别是对于使用方而言,生效的只有这一个部分,这篇文章主要介绍了Java通用工程模块bom包管理的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-06-06
  • 2019年最新Java学习路线图

    2019年最新Java学习路线图

    不管你是不懂电脑的小白,还是已经步入开发的大牛,这套路线路绝对不容错过,路线图的宗旨就是分享,专业,便利,让喜爱Java的人,都能平等的学习,感兴趣的同学可以了解一下
    2019-03-03
  • Spring中@Import的各种用法以及ImportAware接口详解

    Spring中@Import的各种用法以及ImportAware接口详解

    这篇文章主要介绍了Spring中@Import的各种用法以及ImportAware接口详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Java获取本机IP的几种常见方法

    Java获取本机IP的几种常见方法

    在Java编程中,我们经常需要获取本地或远程计算机的IP地址,IP地址是用于唯一标识计算机的一组数字,它在网络通信中起到重要的作用,下面将介绍几种在Java中获取IP地址的方法,并提供相应的源代码,需要的朋友可以参考下
    2025-05-05
  • 解决idea中maven项目打包成jar报错:没有主清单属性的问题

    解决idea中maven项目打包成jar报错:没有主清单属性的问题

    这篇文章主要给大家分享了idea中maven项目打包成jar,报错没有主清单属性解决方法,文中有详细的解决方法,如果又遇到同样问题的朋友可以参考一下本文
    2023-09-09
  • java理论基础函数式接口特点示例解析

    java理论基础函数式接口特点示例解析

    这篇文章主要为大家介绍了java理论基础函数式接口特点示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • Spring MVC拦截器的基本使用方法

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

    这篇文章主要给大家介绍了关于Spring MVC拦截器的基本使用方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring MVC具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • Java进行文件格式校验的方案详解

    Java进行文件格式校验的方案详解

    这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-04-04

最新评论