如何提高速度-----从数据库查询出3万条数据,并对每条数据进行处理后,生成5M文件 这个慢的原因是因为你没读取一条记录就写入文件一次,这势必增加了IO的开销,可以使用楼上推荐的带有缓冲区的writer试试 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 恩,我也觉得是因为我每条都需要处理的结果我把filewriter 改成了bufferedwriter还是很慢BufferedWriter writer = new BufferedWriter(new FileWriter(file)); 我把filewriter 改成了bufferedwriter还是很慢BufferedWriter writer = new BufferedWriter(new FileWriter(file)); 恩,我也觉得是因为我每条都需要处理的结果我把filewriter 改成了bufferedwriter还是很慢BufferedWriter writer = new BufferedWriter(new FileWriter(file));默认的BufferedWriter缓冲8192个字符,你可以在构造函数中指定缓存的字符数,楼书试一下吧 恩,我也觉得是因为我每条都需要处理的结果我把filewriter 改成了bufferedwriter还是很慢BufferedWriter writer = new BufferedWriter(new FileWriter(file));默认的BufferedWriter缓冲8192个字符,你可以在构造函数中指定缓存的字符数,楼书试一下吧问题不在那,我觉得,我都用nio了,我也试了在实例化的时候制定字节数,没用, 两个问题。1.ResultSet的每一次循环是不是会命中数据库,命中的话就有一次网络IO。是不是可以根据可以使用的内存来拿数据,比如一次性拿出100条,然后下一次再拿100条直到取不足100条了表示最后一批了。2.你每条记录都输出一次文件,如楼上所说的增加一个缓冲可以减少IO。不过如果需要更快话,你又会使用NIO的API的话试一下FileChannle.map()这个直接内存映射来写文件。我个人觉得取数据少量时可以直接使用ResultSet,但是在有效率要求的地方最好还是自己来组织SQL完成。你知道每一次调用ResultSet.next()的时候是会一次性读取几条数据放在内存,还是只拿当前一条? 为什么每rs.next()写一次,不换种思路; 就算先把3W条数据全load出来放到内存里面再写一次性写进文件也要比这种方式快! 如果是数据的话可以导出到excel,每增加一条数据只是添加一行,应该会快很多 我怎么觉得问题在26行:filter(rs.getString(i)) 这个方法的问题呢? 顶楼上,可能filter那里有影响;另外,用BufferedWriter减少IO次数,这个是很重要一点; 用java找对称数 新手题 求解 为什么package explorer下的工程 的很多文件(夹)图标的左下方都有个小红叉,怎么解决 ColorDialog 对话框如何确实点击了OK按钮 j2se程序执行顺序 谁给我提供一个如何操作arrays的范例? 类加载器的问题 谁能给我一点思路?做测试一个Cache产品的性能的例子。 用jbuilder写一个ftp,用什么控件好? 想学JAVA的.... java 入门经典资料【大牛可以闪开,哈哈哈哈】 【菜鸟级问题】【求救】IO流简单粗暴,创建流还有顺序?【菜鸟级问题】【求救】
恩,我也觉得是因为我每条都需要处理的结果我把filewriter 改成了bufferedwriter还是很慢
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
我把filewriter 改成了bufferedwriter还是很慢
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
恩,我也觉得是因为我每条都需要处理的结果我把filewriter 改成了bufferedwriter还是很慢
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
默认的BufferedWriter缓冲8192个字符,你可以在构造函数中指定缓存的字符数,楼书试一下吧
恩,我也觉得是因为我每条都需要处理的结果我把filewriter 改成了bufferedwriter还是很慢
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
默认的BufferedWriter缓冲8192个字符,你可以在构造函数中指定缓存的字符数,楼书试一下吧
问题不在那,我觉得,我都用nio了,我也试了在实例化的时候制定字节数,没用,
filter(rs.getString(i)) 这个方法的问题呢?
另外,用BufferedWriter减少IO次数,这个是很重要一点;