zoukankan      html  css  js  c++  java
  • Java使用缓冲流实现文件的copy

    缓冲流实现文件的copy,可以对图片,视频,zip,rar等文件进行操作
    package com.io.buffered;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    import org.junit.Test;
    
    /**
     * 使用缓冲流实现文件的copy
     */
    public class BufferedStreamFile {
        // 非文本文件放copy
        @Test
        public void copyFileTest() {
            // 记录下时间
            long start = System.currentTimeMillis();
            String src = "C:\Users\Administrator\Desktop\1.png";
            String dest = "C:\Users\Administrator\Desktop\2.png";
            copyFile(src, dest);
            // 结束时间
            long end = System.currentTimeMillis();
            System.out.println("耗时:" + (end - start));
        }
    
        public static void copyFile(String src, String dest) {
            // 3、创BufferedInputStream 包装对应的节点流,用于提高效率
            BufferedInputStream bis = null;
            // 4、创建BufferedOutputStream 包装对应的节点流,用于提高效率
            BufferedOutputStream bos = null;
            try {
                // 1、创建FileInputStream 
                FileInputStream fis = new FileInputStream(src);
                // 2、创建FileoutputStream 
                FileOutputStream fos = new FileOutputStream(dest);
    
                bis = new BufferedInputStream(fis);
                bos = new BufferedOutputStream(fos);
                // 5、读取对应的文件内容
                byte[] b = new byte[1024];
                int len = 0;
                while ((len = bis.read(b)) != -1) {
                    // 6将读取内容写到目标地点
                    bos.write(b, 0, len);
                }
                // bos.flush();// 强制情况缓冲区【防止数据的丢失,一般情况不要用加】
            } catch (IOException e) {
                e.printStackTrace();
            }
            // 7、关闭流
            if (bos != null) {
                try {
                    bos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (bis != null) {
                try {
                    bis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
        }
    }
  • 相关阅读:
    Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期
    XML学习笔记(2)--dom4j操作XML
    坦克大战(版本2.5-版本2.9)
    坦克大战(版本1.7-版本2.4)
    坦克大战(版本1.0-版本1.6)
    坦克大战(版本0.1-版本0.9)
    JavaSE聊天室
    HTML+CSS+JS学习总结
    JDBC学习笔记(10)——调用函数&存储过程
    VS工程的相对路径写法
  • 原文地址:https://www.cnblogs.com/yonxin/p/12500844.html
Copyright © 2011-2022 走看看