将字符串转化为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文本

相关推荐
酷爱码16 分钟前
Linux实现临时RAM登录的方法汇总
linux·前端·javascript
LuckyLay19 分钟前
Vue百日学习计划Day16-18天详细计划-Gemini版
前端·vue.js·学习
神经毒素19 分钟前
WEB安全--Java安全--shiro550反序列化漏洞
java·安全·web安全·shiro
hnlucky32 分钟前
Windows 上安装下载并配置 Apache Maven
java·hadoop·windows·学习·maven·apache
想要飞翔的pig36 分钟前
uniapp+vue3页面滚动加载数据
前端·vue.js·uni-app
HarryHY36 分钟前
git提交库常用词
前端
SoraLuna36 分钟前
「Mac畅玩AIGC与多模态41」开发篇36 - 用 ArkTS 构建聚合搜索前端页面
前端·macos·aigc
霸王蟹43 分钟前
React Fiber 架构深度解析:时间切片与性能优化的核心引擎
前端·笔记·react.js·性能优化·架构·前端框架
benben04444 分钟前
Unity3D仿星露谷物语开发44之收集农作物
前端·游戏·unity·游戏引擎
会功夫的李白1 小时前
uniapp自动构建pages.json的vite插件
前端·uni-app·vite