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

  • 相关阅读:
    Java 包装类
    CTF 入门笔记
    Java 实践
    Java Object类
    Java 接口
    Java 抽象类
    Java 关键字final
    Java 多态性
    C#类,对象,类成员简介
    C#初始类和命名空间
  • 原文地址:https://www.cnblogs.com/lz3018/p/4971475.html
Copyright © 2011-2022 走看看