java中将简单的json数据写入文件

2023-02-18 00:00:00 简单 写入 中将

json数据写入文件

import java.io.*;
import java.util.Random;
import org.json.JSONObject;
import org.json.JSONArray;
public class Text { 
    public static void main(String[] args) throws IOException { 
        Random random=new Random();//创建random实例对象,程序中会用,用于产生随机数
        Tool tool=new Tool();//创建格式化json字符串工具类
        JSONArray jsonArray=new JSONArray();//创建JSONArray对象
        File file=new File("Test.json");
        if(!file.exists())//判断文件是否存在,若不存在则新建
        { 
            file.createNewFile();
        }
        FileOutputStream fileOutputStream=new FileOutputStream(file);//实例化FileOutputStream
        OutputStreamWriter outputStreamWriter=new OutputStreamWriter(fileOutputStream,"utf-8");//将字符流转换为字节流
        BufferedWriter bufferedWriter= new BufferedWriter(outputStreamWriter);//创建字符缓冲输出流对象

        for(int i=0;i<5;i++){ 
            JSONObject jsonObject=new JSONObject();//创建JSONObject对象
            jsonObject.put("Num",random.nextInt(100)+1);//产生1-100的随机数
            jsonObject.put("age",random.nextInt(8)+18);//产生18-25的随机数
            jsonObject.put("Goal",random.nextInt(41)+60);//产生60-100的随机数
            jsonArray.put(jsonObject);//将jsonObject对象旁如jsonarray数组中
        }
        String jsonString=jsonArray.toString();//将jsonarray数组转化为字符串
        String JsonString=tool.stringToJSON(jsonString);//将jsonarrray字符串格式化
        bufferedWriter.write(JsonString);//将格式化的jsonarray字符串写入文件
        bufferedWriter.flush();//清空缓冲区,强制输出数据
        bufferedWriter.close();//关闭输出流
    }
}
public class Tool(此类非原创,来自网上大神) { 
    private boolean isTab = true;
    public String stringToJSON(String strJson) { 
        int tabNum = 0;
        StringBuffer jsonFormat = new StringBuffer();
        int length = strJson.length();
        for (int i = 0; i < length; i++) { 
            char c = strJson.charAt(i);
            if (c == '{') { 
                tabNum++;
                jsonFormat.append(c + "\n");
                jsonFormat.append(getSpaceOrTab(tabNum));
            } else if (c == '}') { 
                tabNum--;
                jsonFormat.append("\n");
                jsonFormat.append(getSpaceOrTab(tabNum));
                jsonFormat.append(c);
            } else if (c == ',') { 
                jsonFormat.append(c + "\n");
                jsonFormat.append(getSpaceOrTab(tabNum));
            } else { 
                jsonFormat.append(c);
            }
        }
        return jsonFormat.toString();
    }
    public String getSpaceOrTab(int tabNum) { 
        StringBuffer sbTab = new StringBuffer();
        for (int i = 0; i < tabNum; i++) { 
            if (isTab) { 
                sbTab.append('\t');
            } else { 
                sbTab.append(" ");
            }
        }
        return sbTab.toString();
    }
}

以下为对应产生的json文件

[{
   "Goal":88,
   "Num":79,
   "age":21
},
{
   "Goal":95,
   "Num":56,
   "age":23
},
{
   "Goal":79,
   "Num":84,
   "age":19
},
{
   "Goal":93,
   "Num":66,
   "age":23
},
{
   "Goal":89,
   "Num":57,
   "age":18
}]

关于json数据的读取详见json数据的读取

    原文作者:、风天行
    原文地址: https://blog.csdn.net/weixin_43410934/article/details/103070412
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。

相关文章