解决:java 读取 resources 下面的 json 文件

前言:java 读取 工程下的配置文件,文件类型为 json(*.json),记录一下始终读取不到 json 文件的坑。maven项目

直接上工具类代码

package com.yule.component.dbcomponent.utils;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.ResourceUtils;

import java.io.*;

/**
 * 配置文件工具类
 * @author yule
 * @date 2018/9/28 16:26
 */
public class PropertiesUtils {

    private static final Logger logger = LoggerFactory.getLogger(PropertiesUtils.class);

    /**
     * 读取json文件,返回json字符串
     * @param fileName
     * @return
     */
    public static String readJsonFile(String fileName) {
        FileReader fileReader = null;
        Reader reader = null;
        try {
            File jsonFile = ResourceUtils.getFile("classpath:"+fileName);
            fileReader = new FileReader(jsonFile);
            reader = new InputStreamReader(new FileInputStream(jsonFile),"utf-8");
            int ch;
            StringBuffer sb = new StringBuffer();
            while ((ch = reader.read()) != -1) {
                sb.append((char) ch);
            }
            fileReader.close();
            reader.close();
            String jsonStr = sb.toString();
            return jsonStr;
        } catch (IOException e) {
            e.printStackTrace();
            logger.error("读取文件报错", e);
        } finally {
            if(fileReader != null){
                try {
                    fileReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(reader != null){
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return null;
    }
}

调用方式:

  limit.json 项目路径为 resources->conf->system->limit.json

String json = PropertiesUtils.readJsonFile("conf/system/limit.json");
System.out.println(json);

注意:

  我在开发中遇到一个坑,始终读取不到 json 文件,报错,是因为 pom.xml 文件里面没有配置:

        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                    <include>**/*.json</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>

原文地址:https://www.cnblogs.com/yuxiaole/p/9719954.html

时间: 2024-11-04 11:56:58

解决:java 读取 resources 下面的 json 文件的相关文章

java读取package中的properties文件java.util.MissingResourceException

文件结构: /build/classes/d914/Hello.class /build/classes/d914/mess.properties /build/classes/d914/mess_zh_CN.properties /build/classes/d914/mess_en_US.properties 在eclipse中运行如下代码: package d914; import java.util.ResourceBundle; import java.util.Locale; pub

解决java读取大文件内存溢出问题、如何在不重复读取与不耗尽内存的情况下处理大文件

1.传统的在内存中读取 读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法: 1 2 3 Files.readLines(new File(path), Charsets.UTF_8); FileUtils.readLines(new File(path)); 这种方法带来的问题是文件的所有行都被存放在内存中,当文件足够大时很快就会导致程序抛出OutOfMemoryError 异常. 例如:读取一个大约1G的文件: 1 2 3

【转】java 文件 读取目录下的所有文件(包括子目录)

转自:http://www.cnblogs.com/pricks/archive/2009/11/11/1601044.html import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class test { public static void main(String[] args)

谷歌浏览器下请求json文件报错

请求json文件时,谷歌浏览器下总是报这样第一个错误提示.XMLHttpRequest cannot load file:///C:/Users/Administrator/Desktop/dropload/examples/json/more.json. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extens

【转】Java读取matlab的.mat数据文件

参考:Java读取mat文件 下载链接:ujmp  jmatio 下载完两个.jar文件之后,如何引用到java项目当中?项目名称->右键->Property->Java Build Path->Libraries->Add External JARs->选择那两个jar文件即可. 接下来在类中就可import类了.

读取目录下的所有文件

采用递归的方式,逐层读取目录下的文件 public void getFile(String path, List<String> fileList) {        File file = new File(path);        if (file.isDirectory()) {            File[] files = file.listFiles();            if (files != null) {                for (File sub

ubuntu下查看json文件(带缩进)

使用cat命令查看json文件是不带缩进的: cat repositories-aufs {"Repositories":{"kiwenlau/registry":{"2.0.1":"b4a1d983836039925cca8732712632e03b38a91d156ad65dd8513f0ede7b780a"}}} 如果想要显示缩进,可以这样(需要安装python 2.6+): cat repositories-aufs

grafana日志分析界面的json文件

日志分析面板导出的json文件,效果图如下: 下载地址:http://files.cnblogs.com/files/xiaoming279/%E9%9D%A2%E6%9D%BF.zip 主机面板 域名面板

ssm中整合Mybatis可以扫描到放在mapper下面的xml文件的方法

解决方法有两种: 1.把*Mapper.xml文件放到resource文件夹下管理 2.pom配置一下编译xml文件 <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources>