zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Umbraco中更换IndexSet中的NodeType后,搜索页面没有做出对应更改的效果
    Umbraco部署到IIS中权限问题(back office没有权限新建template)
    C控制台密码输入:输入一个字符显示一个星号
    C项目实践--家庭财务管理系统
    C 编程中fseek、ftell的用法总结
    C ++模板的声明和实现为何要放在头文件中?
    头文件与cpp文件为什么要分开写
    printf、sprintf与fprintf 的用法区分
    C编程中fread 、fwrite 用法总结
    C从控制台(stdin)输入带空格的字符串到字符数组中
  • 原文地址:https://www.cnblogs.com/starcrm/p/1337829.html
Copyright © 2011-2022 走看看