• Java基础 FileReader-FileWriter / 缓冲字符输入输出流 / 缓冲字节输入输出流 三种方式 进行文本文件的复制


    易错的地方:

    /** 出错的地方:
     *      1.缓冲流儿输出时,务必:flush();不然可能输出不尽!
     *      2. bw缓冲字符输出流,记得这里! bw.write(b,0,len);
     *      3.字符流不能复制除 纯文本文件 以外的其他文件,不然会损坏!!
     *      *1.对于非文本文件(视频/音频/图片)使用, 只能使用(字节)byte流! 也可以使用转换流提高速度233
     *      * 2.对于文本文件 ,大型文件的话,建议使用字符流(FileReaderWriter)!
     */

    总的笔记:

    /** 出错的地方:
     *      1.缓冲流儿输出时,务必:flush();不然可能输出不尽!
     *      2. bw缓冲字符输出流,记得这里! bw.write(b,0,len);
     *      3.字符流不能复制除 纯文本文件 以外的其他文件,不然会损坏!!
     *      *1.对于非文本文件(视频/音频/图片)使用, 只能使用(字节)byte流! 也可以使用转换流提高速度233
     *      * 2.对于文本文件 ,大型文件的话,建议使用字符流(FileReaderWriter)!
     */
    
    /**字符流处理步骤:
     *        ①声明②加载地址③read/write④close流)
     *----------------------------------------------------------------------------
     * 缓冲流(处理流的一种,相较于加速之前的操作)
     *     BufferedInputStream     read()
     *     BufferedOutputStream    write(),flush():刷新一次,确保输出完
     *     BufferedReader         readLine(): 复制一行!
     *     BufferedWriter         flush()  //刷新一次,确保输出完

    三种方式:

    //实验1: 同时使用FileReader / FileWriter 进行文本文件的复制,不支持中文!
    @Test   //实验1: 同时使用FileReader / FileWriter 进行文本文件的复制,不支持中文!
        public void testFileReaderWriter() throws IOException {
            FileReader  fr=null;
            FileWriter  fw=null;
            File src=new File("D:\SZS文件夹\IO\hello.txt");
            File dest=new File("D:\SZS文件夹\IO\复制的hello.txt");
            try {
                fr=new FileReader(src);
                fw=new FileWriter(dest);
                char[] ch= new char[10];
                int len=0;
               while((len=fr.read(ch))!=-1 ){
                   fw.write(ch);
               }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                fr.close();
                fw.close();
            }
        }
    //实验2: 同时使用BufferInputStream和BufferOutputStream进行图片 的复制
     @Test  //实验2: 同时使用BufferInputStream和BufferOutputStream进行图片 的复制
        public void testBufferStream() throws IOException{
            //①声明②加载字节流,缓冲流③read/write④close缓冲流)
            File src=new File("D:\SZS文件夹\IO\TIM截图20181017161349.png");
            File dest=new File("D:\SZS文件夹\IO\复制的TIM截图.png");
            FileInputStream fis= new FileInputStream(src);
            FileOutputStream fos = new FileOutputStream(dest);
    
            BufferedInputStream bis=new BufferedInputStream(fis);
            BufferedOutputStream bos=new BufferedOutputStream(fos);
    
            byte[] b=new byte[1024];
            int len;
            while((len=bis.read(b))!=-1)
                bos.write(b,0,len);
    
            bis.close();
            bos.close();
        }
    //实验3: 同时使用BufferedReader 和 BufferedWriter 进行文本的复制
      @Test  //实验3: 同时使用BufferedReader 和 BufferedWriter 进行文本的复制
        public void testBufferedReaderWriter() throws IOException{
            File src=new File("D:\SZS文件夹\IO\hello.txt");
            File dest=new File("D:\SZS文件夹\IO\BufferedReaderWriter复制的hello.txt");
            //①声明②将地址加载进字符流,将字符流加载进缓冲流③read/write④close缓冲流)
            FileReader fis= new FileReader(src);
            FileWriter fos = new FileWriter(dest);
    
            BufferedReader bs=new BufferedReader(fis);
            BufferedWriter bw=new BufferedWriter(fos);
    
            char[] b=new char[1024];
            int len;
            while((len=bs.read(b))!= -1) {
                bw.write(b,0,len);
            }
            bw.flush();
            bs.close();
            bs.close();
        }

    学习视频地址:http://www.gulixueyuan.com/course/39/task/497/show



  • 相关阅读:
    【Golang】golang文本处理
    【Golang】golang中临时对象池sync.Pool
    WebSocket介绍
    【Linux】linux常用命令操作整理
    【PHP】php7新特性及其优化原理
    【Mysql】MySQL集群方案之PXC(percona xtradb cluster)
    【Linux】线上服务器要关注哪些参数
    service自动发现,yaml文件管理内外部端口访问
    service代理模式及负载均衡
    SET NLS_LANG=AMERICAN_AMERICA.AL32UTF8
  • 原文地址:https://www.cnblogs.com/zhazhaacmer/p/9805631.html
Copyright © 2020-2023  润新知