文件拷贝

来源:互联网 发布:linux telnet服务 编辑:程序博客网 时间:2024/05/24 04:37
public class Example10 {


public static void main(String[] args) throws Exception{
InputStream in=new FileInputStream("C:/Users/asus1/Music/新建文件夹/韩安旭-多幸运.mp3");
//创建一个字节输入流用于读取当前目录下的文件
OutputStream out=new FileOutputStream("d:/2345下载/韩安旭-多幸运.mp3");
//创建一个字节输出流用于读取数据
int len;
long begintime=System.currentTimeMillis();//获取拷贝文件前的系统时间
while((len=in.read())!=-1){
out.write(len);//将读到的字节写入文本
}
long endtime=System.currentTimeMillis();
System.out.println("拷贝文件所消耗的时间是"+(endtime-begintime));
in.close();
out.close();
}


}

字节流的缓冲区拷贝文件:

public class Example10 {


public static void main(String[] args) throws Exception{
//创建一个字节输入流用于读取当前文件下的文件
FileInputStream in=new FileInputStream("C:\\Users\\asus1\\Music\\新建文件夹\\张杰-偏爱.mp3");
//创建一个字节输出流用于写入当前文件
FileOutputStream out=new FileOutputStream("d:/2345下载/张杰-偏爱.mp3");
byte[] buff=new byte[1024];//定义一个字节数组作为缓冲区
int len;
long begintime=System.currentTimeMillis();
while((len=in.read(buff))!=-1){//读出缓冲区内容
out.write(buff,0,len);//从第一个字节开始向文件写入len个字符
}
long endtime=System.currentTimeMillis();
System.out.println("拷贝文件所需时间"+(endtime-begintime));
in.close();
out.close();
}


}

两个比较可以看出第二个拷贝文件所消耗的时间明显减小了,从而说明,缓冲区读写文件可以有效的提高程序的效率。

这是因为程序中的缓冲区就是一块内存,用于存放暂时输入输出的数据,使用缓冲区可以减少了对文件的操作次数,所以可以提高数据的效率.