• 写大文件


    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更适合大数据量的写入。

  • 相关阅读:
    [.NET]如何擷取部分網頁內容轉成圖片
    一些很有用的JS特效
    Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
    .NET获取客户端信息
    WAYOS 破解版三天重启最新解决办法,免重启程序
    MySQL 随机生成各种类型的随机函数
    Active Form显示标题栏及页面跳转
    wayos计费系统easyradius使用小记
    ROS中的智能QOS实现,效果应该是会比WAYOS好,而且更灵活
    以太网中的ARP和PPPOE
  • 原文地址:https://www.cnblogs.com/lz3018/p/4971475.html
Copyright © 2020-2023  润新知