String sql = "SELECT PHONE_NO PHONE_NO,USER_ID USER_ID FROM "+ tableName ;
try {
dbaction.getConn();
Statement stmt = dbaction.con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()){
File file = new File(fileName);
if(!file.exists()){
if(!file.getParentFile().mkdirs()){
System.out.println("创建父目录失败!");
}
if(!file.createNewFile()){
System.out.println("文件创建失败!");
return ;
}
}
writer = new BufferedWriter(new FileWriter(fileName,true));
String phoneNo = rs.getString(1).trim();
String userId = rs.getString(2).trim();
writer.write(phoneNo+"\r\n");
writer.flush();
String userIdExt = userId.substring(userId.length()-2, userId.length());
smallFileName = filePre + time + "_"+userIdExt+".txt";
//******生成带userId的文件
file = new File(smallFileName);
if(!file.exists()){
// if(!file.getParentFile().mkdirs()){
// System.out.println("创建父目录失败!");
// }
if(!file.createNewFile()){
System.out.println("文件创建失败!");
}
}
writerSml = new BufferedWriter(new FileWriter(smallFileName,true));
writerSml.write(phoneNo+"|"+userId+"\r\n");
writerSml.flush();
writer.close();
writerSml.close();
phoneNum++;
}
1、需求:从数据库中读取百万级的记录,(包括用户手机号、用户id)取出后按照userid后两位分(00-99)生成100不同的txt文件。
2、以上是代码,程序运行一段时间后,当取数过多的时候导致系统内存溢出,
问题:1、怎么优化下代码能够减少系统内存的使用。
2、怎么优化下代码提高系统的效率。java io,java数据导出java内存释放
try {
dbaction.getConn();
Statement stmt = dbaction.con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()){
File file = new File(fileName);
if(!file.exists()){
if(!file.getParentFile().mkdirs()){
System.out.println("创建父目录失败!");
}
if(!file.createNewFile()){
System.out.println("文件创建失败!");
return ;
}
}
writer = new BufferedWriter(new FileWriter(fileName,true));
String phoneNo = rs.getString(1).trim();
String userId = rs.getString(2).trim();
writer.write(phoneNo+"\r\n");
writer.flush();
String userIdExt = userId.substring(userId.length()-2, userId.length());
smallFileName = filePre + time + "_"+userIdExt+".txt";
//******生成带userId的文件
file = new File(smallFileName);
if(!file.exists()){
// if(!file.getParentFile().mkdirs()){
// System.out.println("创建父目录失败!");
// }
if(!file.createNewFile()){
System.out.println("文件创建失败!");
}
}
writerSml = new BufferedWriter(new FileWriter(smallFileName,true));
writerSml.write(phoneNo+"|"+userId+"\r\n");
writerSml.flush();
writer.close();
writerSml.close();
phoneNum++;
}
1、需求:从数据库中读取百万级的记录,(包括用户手机号、用户id)取出后按照userid后两位分(00-99)生成100不同的txt文件。
2、以上是代码,程序运行一段时间后,当取数过多的时候导致系统内存溢出,
问题:1、怎么优化下代码能够减少系统内存的使用。
2、怎么优化下代码提高系统的效率。java io,java数据导出java内存释放
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货