• 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
  • 相关阅读:
    微信小程序传值
    tp查询中2个表格中字段,比较大小
    isNaN与parseInt/parseFloat
    编程技巧之表格驱动编程
    RGB
    矩形重叠检测。
    经验搜索排名---google已经做过类似的了(我想多了)
    有关编程语言的认识
    Nodepad++ 资料整理
    lower()
  • 原文地址:https://www.cnblogs.com/gzgBlog/p/13624617.html
Copyright © 2020-2023  润新知