黑马程序员技术交流社区

标题: 使用带缓冲功能的字节流复制文件 [打印本页]

作者: hopestar    时间: 2015-6-9 21:34
标题: 使用带缓冲功能的字节流复制文件
/*分析: 建立FileInputStream实例对象和FileOutputStream实例对象,
  并把FileInputStream实例对象作为BufferedInputStream构造函数的实参传递过去进行初始化。
   建立BufferedInputStream对象作为引用指向被初始化的BufferedInputStream对象,
   然后在调用本类对象的read方法依次取出原文本数据,在调用BufferedOutputStream对象的write方法
   把从read方法取出的数据写到目标文件中。
*/
import java.io.*;
public class Test7{
        public static void main(String[] args) throws Exception{
                BufferedInputStream bf=null;
                BufferedOutputStream bo=null;
                try{
                //创建字节流读取对象并指定要读的文件。
                FileInputStream fis=new FileInputStream("C:\\12.avi");
                //创建字节流输入对象并创建了读取文件之后的存放位置。
                FileOutputStream fo =new FileOutputStream("C:\\11.avi");
                //创建了读取缓冲流对象并关联指定的字节流读取对象。
                 bf=new BufferedInputStream(fis);
                //创建了输入缓冲流对象并关联指定的字节流输入对象。
                 bo=new BufferedOutputStream(fo);
               
                int bt=0;
                while((bt=bf.read())!=-1)//循环一个字节一个字节的读取原始数据并复制给bt。
                {
                        bo.write(bt);//循环把bt的数据写入缓冲流中。
                }
                }
                catch(FileNotFoundException e)
                {
                        throw new FileNotFoundException("盘符填写不正确,没有此盘符");
                }
               
                catch(IOException e)
                {
                        throw new IOException("存入数据异常");
                }
                finally
                {try
                {
                        bf.close();//关闭读取流资源。
                }
                catch(IOException e)
                {
                        throw new IOException("输入流资源关闭失败");
                }
                       
                try
                {
                        bo.close();//关闭输入流资源。
                }
                catch(IOException e)
                {
                        throw new IOException("输入流资源关闭失败");
                }
                       
                       
                }
       
               
                /*FileInputStream fs=new FileInputStream("C:\\1.png");
                FileOutputStream ft=new FileOutputStream("C:11.png");
                InputStreamReader isr=new InputStreamReader(fs);
                OutputStreamWriter osw=new OutputStreamWriter(ft);
                BufferedReader br=new BufferedReader(isr);
                BufferedWriter bw=new BufferedWriter(osw);
                String line=null;
                while((line=br.readLine())!=null)
                {
                        bw.write(line);
                        bw.newLine();
                       
                }
                br.close();
                bw.close();
                */
               
        }
       
}
       




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2