zoukankan      html  css  js  c++  java
  • 107.Java中IO流_字符流的缓冲区

    字符流的缓冲区

    查看Reader 发现Reader,操作的是字符,我们就不需要进行编码解码操作,由字符流读到二进制,自动进行解码得到字符,写入字符自动编码成二进制.

    Reader有一个子类BufferedReader。子类继承父类显然子类可以重写父类的方法,也可以增加自己的新方法。例如一次读一行就是常用的操作.那么BufferedReader 类就提供了这个方法,可以查看readLine()方法具备 一次读取一个文本行的功能。很显然,该子类可以对功能进行增强。

    体验BufferedReader

    public class IoTest_BufferedReader {
        public static void main(String[] args) throws IOException {
            readFile("c:\a.txt");
        }
    
        private static void readFile(String path) throws IOException {
            Reader read = new FileReader(path);
    
            BufferedReader br = new BufferedReader(read);
            
            String line = null;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
    
        }
    }

    注意:

    在使用缓冲区对象时,要明确,缓冲的存在是为了增强流的功能而存在,所以在建立缓冲区对象时,要先有流对象存在.

    缓冲区的出现提高了对流的操作效率。原理:其实就是将数组进行封装。

    使用字符流缓冲区拷贝文本文件.

    public class Demo7 {
        public static void main(String[] args) throws IOException {
            // 关联源文件
            File srcFile = new File("c:\linux大纲.txt");
            // 关联目标文件
            File destFile = new File("d:\linux大纲.txt");
            // 实现拷贝
            copyFile(srcFile, destFile);
    
        }
    
        private static void copyFile(File srcFile, File destFile)
                throws IOException {
            // 创建字符输入流
            FileReader fr = new FileReader(srcFile);
            // 创建字符输出流
            FileWriter fw = new FileWriter(destFile);
    
            // 字符输入流的缓冲流
            BufferedReader br = new BufferedReader(fr);
            // 字符输出流的缓冲流
            BufferedWriter bw = new BufferedWriter(fw);
    
            String line = null;
            // 一次读取一行
            while ((line = br.readLine()) != null) {
                // 一次写出一行.
                bw.write(line);
                // 刷新缓冲
                bw.flush();
                // 进行换行,由于readLine方法默认没有换行.需要手动换行
                bw.newLine();
            }
            // 关闭流
            br.close();
            bw.close();
        }
    }
    author@nohert
  • 相关阅读:
    CI框架源码学习笔记1——index.php
    angular.js的post数据方式
    腾讯2018年9月秋招前端笔试题--编程题
    有赞2018年9月秋招一面
    2018阿里秋招笔试编程题
    css3 flex布局
    tomcat启动后,无法访问,报404
    2018网易前端实习面试总结
    2018网易前端实习笔试编程题总结
    set用法
  • 原文地址:https://www.cnblogs.com/gzgBlog/p/13624617.html
Copyright © 2011-2022 走看看