import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 四种方式复制比较
*/
public class Test {
public static void main(String[] args) throws IOException {
long before = System.currentTimeMillis();
// method(); 68641
// method2(); 127
// method3(); //415 62416(如果高效流在写出一个字节后就直接刷新,就失去了高效的意义。)
// method4(); 36
long after = System.currentTimeMillis();
System.out.println(after-before);
}
//普通流一次一个字节
private static void method() throws IOException {
//创建流对象
FileInputStream fis = new FileInputStream("czbk.mp3");
FileOutputStream fos = new FileOutputStream("czbk_今天我们要走了.mp3");
//复制
//定义变量,存储本次读取到的字节
int b;
while((b=fis.read())!=-1) {
fos.write(b);
}
//关闭流
fos.close();
fis.close();
}
//普通流一次一个字节数组
private static void method2() throws IOException {
//创建流对象
FileInputStream fis = new FileInputStream("czbk.mp3");
FileOutputStream fos = new FileOutputStream("czbk_今天我们要走了.mp3");
//复制
//定义变量,存储每次读取到的数据
byte[] bytes = new byte[1024];
//定义变量,记录每次读取到的字节个数
int len;
while((len=fis.read(bytes))!=-1) {
fos.write(bytes,0,len);
}
//关闭流
fos.close();
fis.close();
}
//高效流一次一个字节
private static void method3() throws IOException {
//创建流对象
FileInputStream fis = new FileInputStream("czbk.mp3");
FileOutputStream fos = new FileOutputStream("czbk_今天我们要走了.mp3");
BufferedInputStream bis = new BufferedInputStream(fis);
BufferedOutputStream bos = new BufferedOutputStream(fos);
//复制
//定义变量,存储本次读取到的字节
int b;
while((b=bis.read())!=-1) {
bos.write(b);
bos.flush();
}
//关闭流
bos.close();
bis.close();
}
//高效流一次一个字节数组
private static void method4() throws IOException {
//创建流对象
FileInputStream fis = new FileInputStream("czbk.mp3");
FileOutputStream fos = new FileOutputStream("czbk_今天我们要走了.mp3");
BufferedInputStream bis = new BufferedInputStream(fis);
BufferedOutputStream bos = new BufferedOutputStream(fos);
//定义变量,存储每次读取到的数据
byte[] bytes = new byte[1024];
//定义变量,记录每次读取到的字节个数
int len;
while((len=bis.read(bytes))!=-1) {
bos.write(bytes,0,len);
}
//关闭流
bos.close();
bis.close();
}
}
|
|