缓冲流实现文件的copy,可以对图片,视频,zip,rar等文件进行操作[url=][/url]
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(); } } }}[url=][/url]
|
|