• Optimization with Custom Buffering


     

    import java.io.*;

    public class IOTest {

    public static void main(String[] args){

                 IOTest io = new IOTest();

                 try{

                 long startTime = System.currentTimeMillis();

                 io.readWrite("c:/temp/test1.txt","c:/temp/test4.txt");    

                 long endTime = System.currentTimeMillis();

                 System.out.println("Time taken for reading and writing using default behaviour : "

                                                               + (endTime - startTime) + " milli seconds" );

     

                 long startTime1 = System.currentTimeMillis();

                 io.readWriteBuffer("c:/temp/test2.txt","c:/temp/test5.txt");           

                 long endTime1 = System.currentTimeMillis();

                 System.out.println("Time taken for reading and writing using buffered streams : "

                                                               + (endTime1 - startTime1) + " milli seconds" );

     

                 long startTime2 = System.currentTimeMillis();

                 io.readWriteArray("c:/temp/test3.txt","c:/temp/test6.txt");             

                 long endTime2 = System.currentTimeMillis();

                 System.out.println("Time taken for reading and writing using custom buffering : "

                                                               + (endTime2 - startTime2) + " milli seconds" );

                 }catch(IOException e){ e.printStackTrace();}

    }

    public static void readWrite(String fileFrom, String fileTo) throws IOException{

                 InputStream in = null;

                 OutputStream out = null;

                 try{

                              in = new FileInputStream(fileFrom);

                              out = new FileOutputStream(fileTo);

                              while(true){

                                              int bytedata = in.read();

                                              if(bytedata == -1)

                                              break;

                                              out.write(bytedata);

                              }

                 }

                 finally{

                  if(in != null)

                              in.close();

                  if(out !=null)

                              out.close();

                 }

    }

    public static void readWriteBuffer(String fileFrom, String fileTo) throws IOException{

                 InputStream inBuffer = null;

                 OutputStream outBuffer = null;

                 try{

                              InputStream in = new FileInputStream(fileFrom);

                              inBuffer = new BufferedInputStream(in);

                              OutputStream out = new FileOutputStream(fileTo);

                              outBuffer = new BufferedOutputStream(out);

                              while(true){

                                              int bytedata = inBuffer.read();

                                              if(bytedata == -1)

                                              break;

                                              out.write(bytedata);

                              }

                 }

                 finally{

                  if(inBuffer != null)

                              inBuffer.close();

                  if(outBuffer !=null)

                              outBuffer.close();

                 }

    }          

    public static void readWriteArray(String fileFrom, String fileTo) throws IOException{

                 InputStream in = null;

                 OutputStream out = null;

                 try{

                              in = new FileInputStream(fileFrom);

                              out = new FileOutputStream(fileTo);

                              int availableLength = in.available();

                              byte[] totalBytes = new byte[availableLength];

                              in.read(totalBytes);

                              out.write(totalBytes);


                 }

                 finally{


                  if(in != null)

                              in.close();

                  if(out !=null)

                              out.close();

                 }

    }          

    }

    关于作者: 王昕(QQ:475660) 在广州工作生活30余年。十多年开发经验,在Java、即时通讯、NoSQL、BPM、大数据等领域较有经验。
    目前维护的开源产品:https://gitee.com/475660
  • 相关阅读:
    DPM(Deformable Part Model)原理详解(汇总)
    VS code配置docker的shell环境
    C++运算符重载规则
    typedef 和define的区别
    在ESP分区新建win10引导
    自动化学报投稿过程记录
    shell-grep命令详解(转)
    shell-sed命令详解(转)
    shell-命令行参数(转)
    sublimetext3-实用快捷键整理
  • 原文地址:https://www.cnblogs.com/starcrm/p/1337829.html
Copyright © 2020-2023  润新知