JSON文件读写工具类,其他文件读写通用

2 篇文章 0 订阅

说明

今天工作中需要使用带第三方的接口,第三方的接口某些参数是可变的且调用其他接口时需要用到这些参数,介于某些原因做了一个协调系统处理该业务,协调系统没有数据库连接,缓存会导致重启丢失,只能使用文件存储相关数据,综合考虑使用xxxxx.json作为数据持久化方式。
做的过程中发现该类似乎各种文件都可以使用。

正文

JSON文件读写工具类

import cn.pminfo.credit.model.CreaditConfigList;
import cn.pminfo.credit.model.CreditConfig;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.List;

/**
 * @Project : testsystem
 * @Package Name : com.codeyi.common.utils
 * @Company 
 * @Author Codeyi on 2019-10-14.
 * @Creation Date: 2019年10月14日 18:53
 * @Description :描述
 */
public class JsonFileUtil {

    /**
     * 读JSON文件内容
     *
     * @param filePath 绝对路径
     * @return 文件内容
     */
    public static String readJsonFile(String filePath) {
        try {
            File file = new File(filePath);
            return FileUtils.readFileToString(file, "UTF-8");
        } catch (Exception e) {
            return null;
        }
    }

    /**
     * JSON文件写入
     *
     * @param filePath 绝对路径
     * @param jsonStr 写入内容(完整)
     */
    public static void writeJsonFile(String filePath, String jsonStr) {
        FileWriter fw;
        try {
//            File file = new File(filePath);
//            FileUtils.writeStringToFile(file, jsonStr, "UTF-8");
            fw = new FileWriter(filePath);
            PrintWriter out = new PrintWriter(fw);
            out.write(jsonStr);
            out.println();
            fw.close();
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) throws Exception {
        String userDir = System.getProperty("user.dir");
        String filePath = "/credit-web/src/main/java/cn/pminfo/credit/config/credit-config.json";
        filePath = userDir + filePath;
        String jsonStr = readJsonFile(filePath);
        System.out.print(jsonStr);
        JSONObject jsonObject = JSON.parseObject(jsonStr);
        CreaditConfigList creaditConfigList = JSON.parseObject(jsonStr, new TypeReference<CreaditConfigList>() {
        });
        List<CreditConfig> creditConfigList = JSON.parseObject(jsonObject.get("creditConfigList").toString(), new TypeReference<List<CreditConfig>>() {
        });
        System.out.print("OK");
    }
}

外部调用方式

JSON文件读测试

/**
     * JSON配置文件地址
     */
    private static final String configFilePath = "/config/credit-config.json";
    //获取文件绝对路径
    URL url = this.getClass().getResource(configFilePath);
    String filePath = url.getPath();
    //读取文件内容
    String jsonStr = JsonFileUtil.readJsonFile(filePath);
    JSONObject jsonObject = JSON.parseObject(jsonStr);
    List<CreditConfig> creditConfigList = JSON.parseObject(jsonObject.get("creditConfigList").toString(), new TypeReference<List<CreditConfig>>() {
    });

JSON文件写测试

URL url = this.getClass().getResource(testConfigFilePath);
String filePath = url.getPath();
CreditConfig creditConfig = new CreditConfig();
creditConfig.setCityCode("ZJ");
String jsonStr = JSON.toJSONString(creditConfig);
JsonFileUtil.writeJsonFile(filePath, jsonStr);

结尾

亲测可用,这里路径可能需要注意下

  • 文件路径为:/resources/config/test.json,
  • 读写的编译后的文件路径为:D:*****\target***\WEB-INF\classes\config\test.json
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值