• 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
  • 相关阅读:
    iframe高度100%,自适应高度
    怎么让frameset出现整体滚动条
    页面返回顶部
    HTML页面跳转的5种方法
    java web中路径问题。
    sql server数据库添加记录
    如何获取新浪微博背景图
    JavaScript检查是否包含某个字符
    纯JS省市区三级联动
    document.getElementById方法在火狐和谷歌浏览器兼容
  • 原文地址:https://www.cnblogs.com/gzgBlog/p/13624617.html
Copyright © 2020-2023  润新知