緩衝流實現文件的copy,可以對圖片,視頻,zip,rar等文件進行操作 package com.io.buffered; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io. ...
緩衝流實現文件的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();
}
}
}
}