免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: LiveHappy
打印 上一主题 下一主题

如何一次插入200万条记录? [复制链接]

论坛徽章:
0
21 [报告]
发表于 2006-10-21 08:12 |只看该作者
原帖由 LiveHappy 于 2006-10-17 10:47 发表


不知道怎么生成文件可以快点,下面是这生成文件的代码,很慢,请指教下,谢谢


int count = 2000000;
        String outStr = "";
        //但是这个循环很慢,我只测了下下面的for循环,光 ...

你写的程序就该拍死
nt count = 2000000;
        String outStr = "";
        //但是这个循环很慢,我只测了下下面的for循环,光这个循环就执行近一个小时还没执行完这个循环
        for(int i=0;i<count;i++)
        {
            outStr +="123456,"+i+","+ Math.round(Math.random() * 100000000)+"\n";
            //System.out.println(i);
        }
        
你在这里创建了一个超级巨大字符串

[ 本帖最后由 tong0245 于 2006-10-21 08:34 编辑 ]

论坛徽章:
0
22 [报告]
发表于 2006-10-21 08:26 |只看该作者
你自己看看吧
package test;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class TEst {
        public static void main(String[] args) {
                int count = 2000000;
                System.out.println("e:" + File.separator + "outTemp.dat");

                try {
                        File fileOut = new File("e:" + File.separator + "outTemp.dat");
                        fileOut.createNewFile();
                        if (fileOut.canWrite()) {
                                FileOutputStream         fileOutStr = new FileOutputStream(fileOut);
                                BufferedOutputStream bufferedOut = new BufferedOutputStream(
                                                fileOutStr);
                               
                                for (int i = 0; i < count; i++) {
                               
                                        String outStr = "123456," + i + ","
                                                        + Math.round(Math.random() * 100000000) + "\n";
                                        byte outBy[] = outStr.getBytes();
                                        bufferedOut.write(outBy);
                                        // System.out.println(i);
                                }
                                bufferedOut.close();
                                fileOutStr.close();
                        }
                        else {
                                System.out.println("can't to write.");
                        }
                       

                } catch (IOException ex3) {
                }
        }
}

论坛徽章:
0
23 [报告]
发表于 2006-10-21 08:36 |只看该作者
本来不是问题的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP