一.低级字节流一个一个字节复制
1.代码
private static final String file1 = "D:\\temp\\day05\\改名.mp4";
private static final String file2 = "D:\\temp\\day05\\不改名.mp4";
public static void main(String[] args) {
private static void copy1(){
final long startTime = System.currentTimeMillis();
try (InputStream is = new FileInputStream(file1);
OutputStream os = new FileOutputStream(file2);
while((s=is.read())!=-1){
throw new RuntimeException(e);
final long endTime = System.currentTimeMillis();
System.out.println("耗时: "+(endTime-startTime)/1000.0+"s");
2.耗时

二.低级字节流使用字节数组复制
1.代码
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
private static final String file1 = "D:\\temp\\day05\\改名.mp4";
private static final String file2 = "D:\\temp\\day05\\不改名.mp4";
public static void main(String[] args) {
private static void copy2(){
final long startTime = System.currentTimeMillis();
try (InputStream is = new FileInputStream(file1);
OutputStream os = new FileOutputStream(file2);
byte[] buffer = new byte[1024];
while((len=is.read(buffer))!=-1){
throw new RuntimeException(e);
final long endTime = System.currentTimeMillis();
System.out.println("耗时: "+(endTime-startTime)/1000.0+"s");
2.耗时

三.缓冲流一个一个字节复制
1.代码
import java.lang.invoke.VarHandle;
private static final String file1 = "D:\\temp\\day05\\改名.mp4";
private static final String file2 = "D:\\temp\\day05\\不改名.mp4";
public static void main(String[] args) {
private static void copy3() {
final long startTime = System.currentTimeMillis();
try (InputStream is = new FileInputStream(file1);
BufferedInputStream bis = new BufferedInputStream(is);
OutputStream os = new FileOutputStream(file2);
BufferedOutputStream bos = new BufferedOutputStream(os);
while ((len = bis.read()) != -1) {
throw new RuntimeException(e);
final long endTime = System.currentTimeMillis();
System.out.println("耗时: " + (endTime - startTime) / 1000.0 + "s");
2.耗时

四.缓冲流使用字节数组复制
1.代码
private static final String file1 = "D:\\temp\\day05\\改名.mp4";
private static final String file2 = "D:\\temp\\day05\\不改名.mp4";
public static void main(String[] args) {
private static void copy4() {
final long startTime = System.currentTimeMillis();
try (InputStream is = new FileInputStream(file1);
BufferedInputStream bis = new BufferedInputStream(is);
OutputStream os = new FileOutputStream(file2);
BufferedOutputStream bos = new BufferedOutputStream(os);
byte[] buffer = new byte[1024];
while ((len = bis.read(buffer)) != -1) {
bos.write(buffer, 0, len);
throw new RuntimeException(e);
final long endTime = System.currentTimeMillis();
System.out.println("耗时: " + (endTime - startTime) / 1000.0 + "s");
2.耗时
