在本地新建txt文件,存储json对象并持久化,解决json对象重复添加

public void createTxt(Student student) throws IOException {
long studentid = student.getStudentid();
String str=“E:\personInfo\”+studentid+".txt";
File file = new File(str);
if(file.exists()){
return;
}
file.createNewFile();
FileWriter writer = new FileWriter(file);
writer.flush();
writer.close();
}
// 读取txt文件中保存的id集合
public JSONObject readTxt(Student student) throws IOException {
long studentid = student.getStudentid();
String str=“E:\personInfo”;
File file = new File(str);
File[] files = file.listFiles();
if(0==files.length){
createTxt(student);
}
JSONObject jo=null;
for (File cfile : files) {
String name = cfile.getName();
String filename = StringUtils.substringBefore(name, “.txt”);
if(Long.valueOf(filename)studentid){
FileReader fr = new FileReader(cfile);
BufferedReader br = new BufferedReader(fr);
String jsonStr = br.readLine();
jo = JSONObject.parseObject(jsonStr);
}
}
return jo;
}
public void saveTxt(Student student) throws IOException, SysException {
String str=“E:\personInfo\”+student.getStudentid()+".txt";
File file = new File(str);
List idlist=new ArrayList();
idlist.add(222222);
idlist.add(22223);
idlist.add(24222);
idlist.add(2222222);
JSONObject jo = readTxt(student);
String classmessage = jo.getString(“classmessage”);
JSONArray jarray = JSONArray.parseArray(classmessage);
JSONArray jsonArray = new JSONArray();
JSONObject object = new JSONObject();
for (Object o : jarray) {
net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(o);
jsonArray.add(jsonObject);
}
for (Integer ids : idlist) {
int flag=0;
for (Object o : jarray) {//查看jarray中是否包含ids
net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(o);
Integer id = (Integer) jsonObject.get(“id”);
if (id.equals(ids)) {//如果包含,则标记1
flag=1;
}
}
if(0
flag){//如果标志没发生变化,则新增
JSONObject jobj = new JSONObject();
jobj.put(“id”,ids);
jsonArray.add(jobj.toJSONString());
}
}
object.put(“classmessage”,jsonArray);
object.put(“uid”,_3EReqUserInfo.getStudentid());
// String jsonString = JSON.toJSONString(jo, SerializerFeature.DisableCircularReferenceDetect);// 会导致最后一条数据覆盖掉前面所有数据
String jsonString = object.toJSONString();
// write
FileWriter fw = new FileWriter(file, false);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(jsonString);
bw.flush();
bw.close();
fw.close();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值