zoukankan      html  css  js  c++  java
  • 写大文件

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

  • 相关阅读:
    Exception in thread "main" java.lang.UnsatisfiedLinkError: xxx()V
    Python 数组比较
    远程桌面CredSSP 加密数据库修正
    (转)解决ssh登录慢的问题(一定要在远端主机上修改啊)
    让linux开机自动执行一条需要管理员的密码的命令
    ssh批量登录并执行命令(python实现)
    批量重命名文件——python实现
    配置python的eclipse开发环境
    Linux常用压缩解压命令
    强大的zsh配置文件
  • 原文地址:https://www.cnblogs.com/lz3018/p/4971475.html
Copyright © 2011-2022 走看看