import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo1 {
// 不用缓冲区
FileInputStream fis = new FileInputStream("d:/test.mp4");//要复制的文件
FileOutputStream fos = new FileOutputStream("e:/test.mp4");//文件的目的路径及文件名
int len = 0;//声明一个变量储存读取的内容
long startTime = System.currentTimeMillis();//开始时间
while ((len = fis.read()) != -1) {//假如文件未读完
fos.write(len);//将读取的文件写入到目的路径
}
long endTime = System.currentTimeMillis();//结束时间
System.out.println("不带缓冲花费时间" + (endTime - startTime));
}
/**
* 用缓冲区
*
* @throws IOException
*
*/
public static void stream2() throws IOException {
FileInputStream fis = new FileInputStream("d:/test.mp4");
BufferedInputStream bis = new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream("e:/test1.mp4");
BufferedOutputStream bos = new BufferedOutputStream(fos);
int len = 0;
long startTime = System.currentTimeMillis();
while ((len = bis.read()) != -1) {
bos.write(len);
}
long endTime = System.currentTimeMillis();
System.out.println("带缓冲花费时间" + (endTime - startTime));
}
public static void main(String[] args) throws IOException {
//对比两种方法的时间差,不带缓冲区时间过长,是带缓冲区的若干倍
stream();//不带缓冲区的复制方法
stream2();//带缓冲区的复制方法
}
}
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo1 {
// 将d盘的一个map4文件复制到f盘
//可能出现文件找不到的异常,这里把异常抛出去
public static void stream() throws IOException {// 不用缓冲区
FileInputStream fis = new FileInputStream("d:/test.mp4");//要复制的文件
FileOutputStream fos = new FileOutputStream("e:/test.mp4");//文件的目的路径及文件名
int len = 0;//声明一个变量储存读取的内容
long startTime = System.currentTimeMillis();//开始时间
while ((len = fis.read()) != -1) {//假如文件未读完
fos.write(len);//将读取的文件写入到目的路径
}
long endTime = System.currentTimeMillis();//结束时间
System.out.println("不带缓冲花费时间" + (endTime - startTime));
}
/**
* 用缓冲区
*
* @throws IOException
*
*/
public static void stream2() throws IOException {
FileInputStream fis = new FileInputStream("d:/test.mp4");
BufferedInputStream bis = new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream("e:/test1.mp4");
BufferedOutputStream bos = new BufferedOutputStream(fos);
int len = 0;
long startTime = System.currentTimeMillis();
while ((len = bis.read()) != -1) {
bos.write(len);
}
long endTime = System.currentTimeMillis();
System.out.println("带缓冲花费时间" + (endTime - startTime));
}
public static void main(String[] args) throws IOException {
//对比两种方法的时间差,不带缓冲区时间过长,是带缓冲区的若干倍
stream();//不带缓冲区的复制方法
stream2();//带缓冲区的复制方法
}
}