• 写大文件


    1)使用BufferedWriter写文件。一亿条记录

     1 package nioTest;
     2 import java.io.BufferedWriter;
     3 import java.io.FileWriter;
     4 import java.io.IOException;
     5 import java.util.Random;
     6 
     7 public class nio {
     8     public static void writeBigFile() throws IOException{
     9         
    10         @SuppressWarnings("resource")
    11         BufferedWriter bufferedWriter=new BufferedWriter(new 
    12                 FileWriter("test"));
    13         //int i=0;
    14         long start=System.currentTimeMillis();
    15         System.out.println("start:");
    16         for ( int i=0;i<1e8;++i) {
    17             Random r1=new Random();
    18             //Random r2=new Random();
    19             bufferedWriter.write(r1.nextInt(100)+"	"+r1.nextInt(50)+"
    ");
    20         }
    21         bufferedWriter.close();
    22         long end=System.currentTimeMillis();
    23         
    24         System.out.println("second cost:"+(end-start)/1000);
    25         
    26     }
    27     
    28     public static void  main(String[] args) throws IOException {
    29         writeBigFile();        
    30     }
    31     
    32 
    33 }

    r1.next(100)表示生成[0,100)内的随机整数。所用时间:26s。

    2)使用FileWrite写1亿条记录:

     1 package nioTest;
     2 import java.io.BufferedWriter;
     3 import java.io.FileWriter;
     4 import java.io.IOException;
     5 import java.util.Random;
     6 
     7 public class nio {
     8     public static void writeBigFile() throws IOException{
     9         
    10         @SuppressWarnings("resource")
    11         //BufferedWriter bufferedWriter=new BufferedWriter(new 
    12             //    FileWriter("test"));
    13         //int i=0;
    14         FileWriter fileWriter=new FileWriter("test2");
    15         long start=System.currentTimeMillis();
    16         System.out.println("start:");
    17         for ( int i=0;i<1e8;++i) {
    18             Random r1=new Random();
    19             //Random r2=new Random();
    20             //bufferedWriter.write(r1.nextInt(100)+"	"+r1.nextInt(50)+"
    ");
    21             fileWriter.write(r1.nextInt(100)+"	"+r1.nextInt(50)+"
    ");
    22         }
    23         //bufferedWriter.close();
    24         fileWriter.close();
    25         long end=System.currentTimeMillis();
    26         
    27         System.out.println("second cost:"+(end-start)/1000);
    28         
    29     }
    30     
    31     public static void  main(String[] args) throws IOException {
    32         writeBigFile();        
    33     }
    34     
    35 
    36 }

    所用时间为33秒,较BufferedWriter慢,BufferedWriter更适合大数据量的写入。

  • 相关阅读:
    谈谈分布式事务之一:SOA需要怎样的事务控制方式
    asp.net创建自定义排序用户界面
    在ASP.NET 2.0中操作数据:在GridView的页脚中显示统计信息
    Url重写技术的运用(转)
    ASP.NET 对 SqlDataSource 控件使用参数
    正则表达式分支条件与分组
    向DWR传递参数和返回参数(转)
    一位软件工程师的6年总结(转)
    ASP.NET 2.0数据教程之二十六::排序自定义分页数据
    Table控件使用示例
  • 原文地址:https://www.cnblogs.com/lz3018/p/4971475.html
Copyright © 2020-2023  润新知