Java程序设计项目化教程-8.1.3-4 文件的复制-字节缓冲流改_第1页
Java程序设计项目化教程-8.1.3-4 文件的复制-字节缓冲流改_第2页
Java程序设计项目化教程-8.1.3-4 文件的复制-字节缓冲流改_第3页
Java程序设计项目化教程-8.1.3-4 文件的复制-字节缓冲流改_第4页
Java程序设计项目化教程-8.1.3-4 文件的复制-字节缓冲流改_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在应用程序中,I/O流通常都是成对出现的,即输入流和输出流一起使用。例如,文件的复制就需要通过输入流来读取文件中的数据,通过输出流将数据写入文件。项目导读实例演示在Java项目的根目录下先创建文件夹source和target,最后在source文件夹中存放一个“五环之歌.doc”文件。importjava.io.*;publicclassexample8_5{ publicstaticvoidmain(String[]args)throwsException{

//创建一个字节输入流,用于读取当前目录下source文件夹中的文件 InputStreamin=newFileInputStream("source/五环之歌.doc");

//创建一个文件字节输出流,用于将读取的数据写入target目录下的文件中OutputStreamout=newFileOutputStream("target/五环之歌.doc");

实例演示intlen;

//定义一个int类型的变量len,记住每次读取的一个字节 //获取复制文件前的系统时间

longbegintime=System.currentTimeMillis();

while((len=in.read())!=-1){//读取一个字节并判断是否读到文件末尾

out.write(len);//将读到的字节写入文件 }

//获取文件复制结束时的系统时间

longendtime=System.currentTimeMillis(); System.out.println("复制文件耗时:"+(endtime-begintime)+"毫秒"); in.close(); out.close(); }}实例演示8.1.3文件的复制程序实例中定义文件使用了“\\”、这是因为在Windows中的目录符号为反斜线“\”,但反斜线“\”在Java中是特殊字符,表示转义符,所以在使用反斜线“\”时,前面应该再添加一个反斜线,即为“\\”。除此之外,目录符号也可以用正斜线“/”来表示,如“source/五环之歌.doc”。注意事项8.1.3文件的复制当通过流的方式复制文件时,为了提高效率也可以定义一个字节数组作为缓冲区。在复制文件时,可以一次性读取多个字节的数据,并保存在字节数组中,然后将字节数组中的数据一次性写入文件。例8-6使用缓冲区复制文件publicclassexample8_6{publicstaticvoidmain(String[]args)throwsException{

//创建一个字节输入流,用于读取当前目录下source文件夹中的文件

InputStreamin=newFileInputStream("source/五环之歌.doc");

//创建一个文件字节输出流,用于将读取的数据写入当前目录target文件中

OutputStreamout=newFileOutputStream("target/五环之歌.doc");

//以下是用缓冲区读写文件

byte[]buff=newbyte[1024];//定义一个字节数组,作为缓冲区

//定义一个int类型的变量len记住读取读入缓冲区的字节数

intlen;

longbegintime=System.currentTimeMillis();

while((len=in.read(buff))!=-1){//判断是否读到文件末尾

out.write(buff,0,len);

//从第一个字节开始,向文件写入len个字节

}

longendtime=System.currentTimeMillis();

System.out.println("复制文件所消耗的时间是:"+(endtime-begintime)+"毫秒);

in.close();

out.close();

}}例8-6使用缓冲区复制文件使用缓冲区读写文件可以有效地提高程序的效率。程序中的缓冲区就是一块内存,该内存主要用于存放暂时输入输出的数据,由于使用缓冲区减少了对文件的操作次数,所以可以提高读写数据的效率。项目8主讲人:徐杰字节缓冲流I/O包提供两个带缓冲的字节流,分别是BufferedInputStream和BufferedOutputStream,它们的构造方法中分别接收InputStream和OutputStream类型的参数作为对象,在读写数据时提供缓冲功能。项目导读8.1.4字节缓冲流应用程序、缓冲流和底层字节流之间的关系图实例演示首先在Java项目的根目录下创建一个名称为src.txt的文件,并在该文件中随意写入一些内容;然后创建一个使用字节缓冲流复制该文件的类,在类中使用FileOutpuStream创建文件des.txt,并使用字节缓冲流对象将文件src.txt中的内容复制到文件des.txt中。BufferedInputStream流和BufferedOutputStream流的用法实例演示例8-7使用字节缓冲流对象实现文件的复制publicclassexample8_7{publicstaticvoidmain(String[]args)throwsException{ //创建一个带缓冲区的输入流

BufferedInputStreambis=newBufferedInputStream(newFileInputStream("src.txt"));

//创建一个带缓冲区的输出流

BufferedOutputStreambos=newBufferedOutputStream(newFileOutputStream("des.txt"));intlen;w

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论