zoukankan      html  css  js  c++  java
  • java二进制文件复制

    package com.starain.io;

    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;

    public class ByteReadAndWrite {
    public static void main(String[] args) throws IOException {

    /*普通二进制读写完成copy文件方法,效率低*/
    File filePathName1 = new File("D:/1.txt");
    File filePathName2 = new File("e:/1.txt");
    try {
    FileInputStream file1 = new FileInputStream(filePathName1);
    FileOutputStream file2 = new FileOutputStream(filePathName2);
    byte put[] = new byte[12];
    int count1 = 0;
    while(file1.read(put)!=-1){
    file2.write(put);
    count1++;
    }
    System.out.println("读取"+count1+"次");
    file1.close();
    file2.close();
    } catch (Exception e) {
    System.out.println("error");
    }

    /*Buffered方法读写copy大文件*/
    File filePathName3 = new File("E:/豆电雨/Struts2_值栈.wmv");
    File filePathName4 = new File("f:\Struts2_值栈.wmv");
    try {
    FileInputStream file3 = new FileInputStream(filePathName3);
    FileOutputStream file4 = new FileOutputStream(filePathName4);
    BufferedInputStream bufferedFile1 = new BufferedInputStream(file3,1000000);//硬盘进制为1000,改变缓冲大小达到节省时间,优化读写的目的
    BufferedOutputStream bufferedFile2 = new BufferedOutputStream(file4,1000000 );
    byte []put2 = new byte[100000];
    int count2 = 0;
    long longTime1 = System.currentTimeMillis();
    while(bufferedFile1.read(put2)!=-1){
    bufferedFile2.write(put2);
    count2++;
    }
    long longTime2 = System.currentTimeMillis();
    System.out.println("用时:"+(longTime2 - longTime1)+"ms");
    System.out.println("用"+count2+"次");

    /*一定养成好的习惯,防止内存泄漏

    *先创建的后关闭

    *后创建的先关闭

    */
    bufferedFile1.close();
    bufferedFile2.close();
    file3.close();
    file4.close();
    } catch (FileNotFoundException e) {
    System.out.println("error2");
    }
    }
    }

  • 相关阅读:
    Java项目xml相关配置
    Jquery的bind跟on绑定事件的区别
    命令操作Mysql数据库
    Jquery实现功能---购物车
    Jquery插件---渐隐轮播
    Jquery制作插件---内容切换
    PCB画板的快捷键
    蓝牙2.0传数据给数码管
    蓝牙2.0传数据给数码管
    共阳极数码管计数器
  • 原文地址:https://www.cnblogs.com/starainDou/p/4705611.html
Copyright © 2011-2022 走看看