思路
1.根据数据源创建字节流输入对象
2.根据目的地创建字节流输出对象
3.读写数据, 复制视频
4.释放资源
代码示例
public static void main(String[] args) throws IOException {
//记录开始事件
long startTime = System.currentTimeMillis();
//复制视频
//method1();
//method2();
//method3();
method4();
//记录结束时间
long endTime = System.currentTimeMillis();
System.out.println("共耗时" + (endTime - startTime) + "毫秒");
}
//基本字节流一次读写一个字节
public static void method1() throws IOException {
FileInputStream fis = new FileInputStream("D:\\TV.avi");
FileOutputStream fos = new FileOutputStream("D:\\java\\TV.avi");
int by;
while ((by = fis.read()) != -1) {
fos.write(by);
}
fis.close();
fos.close();
}
//基本字节流一次读写一个字节数组
public static void method2() throws IOException {
FileInputStream fis = new FileInputStream("D:\\TV.avi");
FileOutputStream fos = new FileOutputStream("D:\\java\\TV.avi");
byte[] bys =new byte[1024];
int len;
while ((len = fis.read(bys)) != -1) {
fos.write(bys,0,len);
}
fis.close();
fos.close();
}
//字节缓冲流一次读写一个字节
public static void method3() throws IOException {
BufferedInputStream bis=new BufferedInputStream(new FileInputStream("D:\\TV.avi"));
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("D:\\java\\TV.avi"));
int by;
while ((by = bis.read()) != -1) {
bos.write(by);
}
bis.close();
bos.close();
}
//字节缓冲流一次读写一个字节数组
public static void method4() throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\TV.avi"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:\\java\\TV.avi"));
byte[] bys =new byte[1024];
int len;
while ((len = bis.read(bys)) != -1) {
bos.write(bys,0,len);
}
bis.close();
bos.close();
}
由实验可以得知
第四种方法的速度时最快的:字节缓冲流一次读写一个字节数组