读取txt文件 数据格式是json json数据有2.3w条 然后进行添加或修改的操作 为什么老是内存溢出,请问有没有好一点的解决方法
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

读取txt文件 数据格式是json 然后进行添加或修改的操作 为什么老是内存溢出
收起
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
当前问题酬金
¥ 0 (可追加 ¥500)
支付方式
扫码支付
10条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
bluefree168 2018-04-08 08:53关注自己写的读写json类吗?我用cppjson,写操作几万条,没发现内存溢出
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
FledglingGrowth 2018-04-08 09:00关注string wenbeng=File.ReadALLText(文件路径,Encoding.Default);
你试试这个可以让文本框里显示文字本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
酱油来也 2018-04-08 09:02关注改一下jdk的使用内存试试
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
FledglingGrowth 2018-04-08 09:04关注string wenbeng=File.ReadALLText(文件路径,Encoding.Default);
你试试这个可以让文本框里显示文字本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
black-rat 2018-04-08 09:06关注有代码没?把代码贴出来啊
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
她说随意 2018-04-08 09:17关注JSONArray jsonArray=new JSONArray(userJson);
//同步用户信息
DtuserForm dtuserForm = null;
String login_name = "";
String realName = "";
String user_id = "";
String becomeDate = "";
String mobile = "";
String userType = "";
String orgId = "";
JSONObject jsonObject= null;
for (int i = 0; i < jsonArray.length(); i++) {
dtuserForm = new DtuserForm();
jsonObject= (JSONObject) jsonArray.get(i);
String validFlag = (String)jsonObject.get("validFlag");
if("0".equals(validFlag)){
validFlag = "2";
}
login_name = (String)jsonObject.get("login_name");
login_name = getPersonAndOrganData.desEncrypt(login_name);
realName = (String)jsonObject.get("realName");
System.out.println("realName-------------"+realName);
realName = getPersonAndOrganData.desEncrypt(realName);//解码
//realName = getEncoding(realName);
//realName = new String(realName.getBytes("UTF-8"),"UTF-8" );
//realName = filterEmoji(realName);
System.out.println("realName===="+realName+"====="+login_name);
user_id = (String)jsonObject.get("user_id");
System.out.println("userid--------------"+user_id);
becomeDate = (String)jsonObject.get("becomeDate");
mobile = (String)jsonObject.get("mobile");
if(!"".equals(becomeDate) && becomeDate != null){
if(becomeDate.length() >10){
becomeDate = becomeDate.substring(0, 10);
}
}
userType = (String)jsonObject.get("userType");//党员类型
orgId = (String)jsonObject.get("orgId");
dtuserForm.setDtuserid(user_id);
dtuserForm.setDtusername(login_name);
dtuserForm.setDtname(realName);
dtuserForm.setMobile(mobile);
dtuserForm.setRddate(becomeDate);
dtuserForm.setTheflag(validFlag);
dtuserForm.setDeptid(orgId);
if("5".equals(userType) || "4".equals(userType)){//只同步党员或者预备党员
addDtuser(db,dtuserForm,i);
}dtuserForm = null; jsonObject = null; validFlag = null; login_name = null; realName = null; user_id = null; becomeDate = null; mobile = null; userType = null; orgId = null; } }catch (Exception e) { e.printStackTrace(); }finally{ db.dbclose(); } } } public boolean addDtuser(SqlData db,DtuserForm dtuserForm,int i) { boolean bIsSuccess = false; Collection c = new ArrayList(); try { int countNum = new DtuserImpl().getUserCountByid(dtuserForm.getDtuserid()); System.out.println("countNum--------------"+countNum); if(countNum <= 0){ DateBean dt = new DateBean(); String sql = "insert into dt_t_dtuser (dtuserid,dtusername,dtname,mobile,rddate,theflag,ifdjqx,theorder,thedate,dtflag) " + "values ('"+dtuserForm.getDtuserid()+"','"+dtuserForm.getDtusername()+"','"+dtuserForm.getDtname()+"','"+dtuserForm.getMobile()+"','"+dtuserForm.getRddate()+"','"+dtuserForm.getTheflag()+"','0',"+(i+1)+",'"+dt.getalldate4()+"','1')"; System.out.println(sql); String sql2 = "insert into dt_t_deptdtuser (deptdtuserid,deptid,dtusername) values ('"+UniqueIDGen.getUniqueID()+"','"+dtuserForm.getDeptid()+"','"+dtuserForm.getDtusername()+"')"; System.out.println(sql2); String sql3 = "insert into dt_t_dueinit (dueinitid,dtusername,1due,2due,3due,4due,5due,6due,7due,8due,9due,10due,11due,12due,dtflag) " + " values ('"+UniqueIDGen.getUniqueID()+"','"+dtuserForm.getDtusername()+"',0,0,0,0,0,0,0,0,0,0,0,0,'1')"; System.out.println(sql3); c.add(sql); c.add(sql2); c.add(sql3); sql=null; sql2=null; sql3=null; }else{ String sql4 = ""; sql4 = "update dt_t_dtuser set dtname='"+dtuserForm.getDtname()+"',mobile='"+dtuserForm.getMobile()+"',rddate='"+dtuserForm.getRddate()+"',theflag = '"+dtuserForm.getTheflag()+"',theorder="+(i+1)+" ,dtflag='1' where dtusername = '"+dtuserForm.getDtusername()+"'"; System.out.println("sql4------------------"+sql4); String sql5 = "update dt_t_deptdtuser set deptid = '"+dtuserForm.getDeptid()+"' where dtusername = '"+dtuserForm.getDtusername()+"'"; System.out.println("sql5----------------"+sql5); c.add(sql4); c.add(sql5); sql4=null; sql5=null; //根据用户id获取数据库中的用户名, String dtusername = DtuserImpl.getDtusernameByid(db,dtuserForm.getDtuserid()); String sql6 = ""; String sql7 = ""; String sql8 = ""; //如果同步过来的用户名和数据库中的用户名不一样的话,修改数据库中所有的用户名 if(!dtusername.equals(dtuserForm.getDtusername())){ sql6 = "update dt_t_dtuserweixin set dtusername = '"+dtuserForm.getDtusername()+"' where dtusername = '"+dtusername+"' "; sql7 = "update dt_t_dueinit set dtusername = '"+dtuserForm.getDtusername()+"' where dtusername = '"+dtusername+"' "; sql8 = "update dt_t_duelog set dtusername = '"+dtuserForm.getDtusername()+"' where dtusername = '"+dtusername+"' "; c.add(sql6); c.add(sql7); c.add(sql8); sql6=null; sql7=null; sql8=null; } dtusername=null; } db.executebatchTask(c); } catch (Exception e) { e.printStackTrace(); } finally { db.dbclose3(); } return bIsSuccess; }
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
qq_40586621 2018-04-08 09:18关注建议不要把json存到文件中,本身.net平台是有对象序列化的,你把对象直接序列化为本地的文本。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
_采菇凉的小蘑菇 2018-04-08 09:46关注2.3w的数据多大要确定一下,如果文件很大,可以按照固定大小例如5M或者行数去切割,切割完毕再去处理,避免内存溢出;
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
无明之徒 2018-04-08 10:42关注string wenbeng=File.ReadALLText(文件路径,Encoding.Default);
你试试这个可以让文本框里显示文字
下面是代码:
JSONArray jsonArray=new JSONArray(userJson);
//同步用户信息
DtuserForm dtuserForm = null;
String login_name = "";
String realName = "";
String user_id = "";
String becomeDate = "";
String mobile = "";
String userType = "";
String orgId = "";
JSONObject jsonObject= null;
for (int i = 0; i < jsonArray.length(); i++) {
dtuserForm = new DtuserForm();
jsonObject= (JSONObject) jsonArray.get(i);
String validFlag = (String)jsonObject.get("validFlag");
if("0".equals(validFlag)){
validFlag = "2";
}
login_name = (String)jsonObject.get("login_name");
login_name = getPersonAndOrganData.desEncrypt(login_name);
realName = (String)jsonObject.get("realName");
System.out.println("realName-------------"+realName);
realName = getPersonAndOrganData.desEncrypt(realName);//解码
//realName = getEncoding(realName);
//realName = new String(realName.getBytes("UTF-8"),"UTF-8" );
//realName = filterEmoji(realName);
System.out.println("realName===="+realName+"====="+login_name);
user_id = (String)jsonObject.get("user_id");
System.out.println("userid--------------"+user_id);
becomeDate = (String)jsonObject.get("becomeDate");
mobile = (String)jsonObject.get("mobile");
if(!"".equals(becomeDate) && becomeDate != null){
if(becomeDate.length() >10){
becomeDate = becomeDate.substring(0, 10);
}
}
userType = (String)jsonObject.get("userType");//党员类型
orgId = (String)jsonObject.get("orgId");
dtuserForm.setDtuserid(user_id);
dtuserForm.setDtusername(login_name);
dtuserForm.setDtname(realName);
dtuserForm.setMobile(mobile);
dtuserForm.setRddate(becomeDate);
dtuserForm.setTheflag(validFlag);
dtuserForm.setDeptid(orgId);
if("5".equals(userType) || "4".equals(userType)){//只同步党员或者预备党员
addDtuser(db,dtuserForm,i);
}dtuserForm = null; jsonObject = null; validFlag = null; login_name = null; realName = null; user_id = null; becomeDate = null; mobile = null; userType = null; orgId = null; } }catch (Exception e) { e.printStackTrace(); }finally{ db.dbclose(); } }
}
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
zjt900123 2018-04-08 11:26关注可以根据json格式截取去不同的json串
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
报告相同问题?
- 2018-04-08 08:43回答 10 已采纳 自己写的读写json类吗?我用cppjson,写操作几万条,没发现内存溢出
- 2022-04-26 11:47回答 3 已采纳 你的json文件可以分段保存,比较比如20条数据保存一个文件,然后读取的时候就可以分段读取了
- 2023-03-19 22:57回答 3 已采纳 整体修改完善如下,改动见注释处,供参考: #include <stdio.h> #include <malloc.h> typedef struct PolyArray {
- 2015-06-09 10:54qq_17045409的博客 由于HttpURLConnection默认是有缓存机制的,在对文件操作时,会将读取的数据写入到缓存区中,并不是直接写入到服务器上,只有当流被关闭时,才将数据提交到服务器上。当缓存区的数据大于虚拟机给点的内存时,就导致...
- 2022-10-08 12:20回答 2 已采纳 改成绝对路径,你那写法默认读取的是python脚本所在的文件夹比如文件在D盘text文件夹内 a=np.loadtxt('D:\\test\date.txt') 可以看下这个博客https://bl
- 2022-01-07 13:07回答 1 已采纳 读取成字典后这样取值: dic={ "type": "FeatureCollection", "features": [ { "type": "
- 2021-08-30 16:33回答 3 已采纳 对文件进行按行读取,对每一行进行逗号分隔,然后依次赋值给Student对象中。
- 2020-06-18 09:26cuyi7076的博客 在本教程中,您将学习如何在PHP中使用会话,如何通过DOM处理XML数据以及如何在PHP中创建,使用和读取JSON数据。 关于本教程 本教程通过演示基于Web的工作流应用程序的构建,教您如何使用PHP。 “ 学习PHP,第1...
- 2023-01-17 00:56回答 3 已采纳 下面是一个示例代码,使用 fopen 函数打开一个名为 "data.json" 的 json 文件,然后使用 cJSON_Parse 函数解析 json 数据: #include <stdio.
- 2022-07-13 08:42回答 1 已采纳 JSON.parse(JSON.stringify(item.row))
- 2022-04-06 21:49回答 1 已采纳 可能是读入的文件编码格式不对,可以将.txt文件重新保存,在保存的界面跟换正确的编码格式
- 2019-05-19 23:50mojolang的博客 内存溢出解决方法 1. map过程产生大量对象导致内存溢出 这种溢出的原因是在单个map中产生了大量的对象导致的。 例如:rdd.map(x=>for(i <- 1 to 10000) yield i.toString),这个操作在rdd中,每个对象都...
- 2021-07-10 11:13回答 3 已采纳 看你代码已经保存到localStorage中了,直接保存到localStorage或者从localStorage获取即可。。有用请点个采纳【右上角】,谢谢~~ 效果如下 var provi
- 2022-03-06 19:22GreatSQL社区的博客 来源:原创投稿 作者:花家舍 ...1.为什么要解析 虽然有很多开源的代码已经实现了这个解码过程,例如使用C实现的undrop-for-innodb[1],支持到MySQL 5.7版本,后续未作更新。 姜老师的py_innodb_page_
- 2018-10-17 14:37超级皮卡丘的博客 公司查询报表出现问题,只能通过月份进行筛选,得到的数据过于庞大,导致查询运行缓慢,并且插入数据库异常出错,内存过大。 想到的办法: 1,查询接口是否有其他参数控制条件,分批次获取 2,解决数据库插入问题...
- 没有解决我的问题, 去提问
悬赏问题
- ¥15 matlab runtime 如何收费
- ¥20 用C语言绘制cs1.6方框透视 出现了点问题 绘制不上去 矩阵数据 和敌人坐标都是正确的
- ¥15 Tpad api账户 api口令
- ¥30 ppt进度条制作,vba语言
- ¥15 生信simpleaffy包下载
- ¥15 请教一下simulink中S函数相关问题
- ¥15 在二层网络中,掩码存在包含关系即可通信
- ¥15 端口转发器解析失败不知道电脑设置了啥
- ¥15 Latex算法流程图行号自定义
- ¥15 关于#python#的问题:我在自己的电脑上运行起来总是报错,希望能给我一个详细的教程,(开发工具-github)