• 写大文件


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

  • 相关阅读:
    ftp连接
    Excel表格内容导出到页面
    jquery 元素前或插入一元素
    sql 查出相同的记录 并把相同记录 显示在一起
    ie 使用window.open页面报错
    java生成word文档
    myeclipse导入项目
    java生成临时文件夹和删除临时文件夹
    正则学习笔记
    React和Vue的组件更新比较
  • 原文地址:https://www.cnblogs.com/lz3018/p/4971475.html
Copyright © 2020-2023  润新知