将字符串转化为json字符串,创建文件、读取文件

1、工具类

java 复制代码
import java.io.*;


/**
 * @Author: jiee
 * @Date: 2020/8/6 9:49
 */
public class JsonUtil {

    /**
     * 从文件中读取数据
     *
     * @param path 文件路径
     * @return 文件内容
     */
    //从给定位置读取Json文件
    public static String readJson(String path) {
        //从指定位置读取文件
        File file = new File(path);

        BufferedReader br = null;

        //返回值,使用StringBuffer
        StringBuffer data = new StringBuffer();
        try {
            br = new BufferedReader(new FileReader(file));
            //每次读取文件的缓存
            String temp = null;
            while ((temp = br.readLine()) != null) {
                data.append(temp);
//                System.out.println(data);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //关闭文件流
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
//        System.out.println("读取成功!");
        return data.toString();
    }

    /**
     * 向文件中写入数据
     *
     * @param path     文件路径
     * @param json     json数据
     * @param fileName 文件名称
     * @param directoryPath 文件夹名称 
     * C盘根目录不让创建文件,只能先创建文件夹,在文件夹里创建文件
     */
    public static void writeJson(String path, String directoryPath, Object json, String fileName) {
        BufferedWriter bw = null;
        File file = new File(path + fileName);
        // 创建文件夹
        File directory = new File(directoryPath);
        boolean created = directory.mkdir();
//        if (created) {
//            System.out.println("文件夹创建成功");
//        } else {
//            System.out.println("文件夹创建失败");
//        }
        //如果文件不存在,则新建一个
        if (!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        //写入数据
        try {
            bw = new BufferedWriter(new FileWriter(file));
            bw.write(json.toString());
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (bw != null) {
                    bw.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
//        System.out.println("写入成功!");
    }
    
}

2、创建文件,并写入,及读取

在需要的地方调用此工具类

java 复制代码
// 此代码的思路是,如果从前端获取不到ip,就从文本里读取

            String fileName="js.txt";
            String path="D:\\js\\";
            String directoryPath = "D:\\js";
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("ip", ip);

 
            String json = null;
            if(ip == "" || ip == null){
            //调用读的方法
                json = JsonUtil.readJson("D:\\js\\js.txt");
                JSONObject jsonIp = JSON.parseObject(json);
                ip = (String)jsonIp.get("ip");
            }else {
            // 调用写的方法
                JsonUtil.writeJson(path,directoryPath,jsonObject,fileName);
            }

最终在D盘创建一个js文件夹,在js文件夹内创建一个js的txt文本

相关推荐
C雨后彩虹2 分钟前
计算疫情扩散时间
java·数据结构·算法·华为·面试
2601_949809596 分钟前
flutter_for_openharmony家庭相册app实战+我的Tab实现
java·javascript·flutter
Up九五小庞17 分钟前
开源埋点分析平台 ClkLog 本地部署 + Web JS 埋点测试实战--九五小庞
前端·javascript·开源
vx_BS8133036 分钟前
【直接可用源码免费送】计算机毕业设计精选项目03574基于Python的网上商城管理系统设计与实现:Java/PHP/Python/C#小程序、单片机、成品+文档源码支持定制
java·python·课程设计
2601_9498683636 分钟前
Flutter for OpenHarmony 电子合同签署App实战 - 已签合同实现
java·开发语言·flutter
qq_177767371 小时前
React Native鸿蒙跨平台数据使用监控应用技术,通过setInterval每5秒更新一次数据使用情况和套餐使用情况,模拟了真实应用中的数据监控场景
开发语言·前端·javascript·react native·react.js·ecmascript·harmonyos
达文汐1 小时前
【困难】力扣算法题解析LeetCode332:重新安排行程
java·数据结构·经验分享·算法·leetcode·力扣
培风图南以星河揽胜1 小时前
Java版LeetCode热题100之零钱兑换:动态规划经典问题深度解析
java·leetcode·动态规划
烬头88211 小时前
React Native鸿蒙跨平台应用实现了onCategoryPress等核心函数,用于处理用户交互和状态更新,通过计算已支出和剩余预算
前端·javascript·react native·react.js·ecmascript·交互·harmonyos
启山智软1 小时前
【中大企业选择源码部署商城系统】
java·spring·商城开发