IO框架(七)字符缓冲流

IO框架(七)字符缓冲流

字符缓冲流内容和作用

  • 字符缓冲流:BufferedReader/BufferedWriter
  • 作用:
    • 高效读写
    • 支持输入换行符
    • 可一次写一行、读一行

BufferedWriter

方法

Modifier and Type Method and Description
void close() 关闭流,先刷新。
void flush() 刷新流。
void newLine() 写一行行分隔符。
void write(char[] cbuf, int off, int len) 写入字符数组的一部分。
void write(int c) 写一个字符
void write(String s, int off, int len) 写一个字符串的一部分。

举例1

public class Demo07 {
    public static void main(String[] args) throws Exception{
        FileWriter fw = new FileWriter("D:\\练习2.txt");
        BufferedWriter bw = new BufferedWriter(fw);
        //写入
        for(int i=0;i<10;i++){
            //写入缓冲流
            bw.write("加油史小鹏!\n");
            //写入文件
            bw.flush();
        }
        bw.close();
        fw.close();
        System.out.println("执行完毕!");
    }
}

BufferedReader

方法

Modifier and Type Method and Description
void close() 关闭流并释放与之相关联的任何系统资源。
Stream<String> lines() 返回一个 Stream ,其元素是从这个 BufferedReader读取的行。
void mark(int readAheadLimit) 标记流中的当前位置。
boolean markSupported() 告诉这个流是否支持mark()操作。
int read() 读一个字符
int read(char[] cbuf, int off, int len) 将字符读入数组的一部分。
String readLine() 读一行文字。
boolean ready() 告诉这个流是否准备好被读取。
void reset() 将流重置为最近的标记。
long skip(long n) 跳过字符

举例1

public class Demo05 {
    public static void main(String[] args) throws Exception{
        FileReader fr = new FileReader("D:\\练习2.txt");
        BufferedReader br = new BufferedReader(fr);
        char[] buf=new char[1024];
        int count=0;
        //read一个一个的读
        while ((count=br.read(buf))!=-1){
            System.out.println(new String(buf,0,count));
        }
        br.close();
        fr.close();
    }
}
//输出:
java练习
java练习
java练习
java练习
java练习
java练习
java练习
java练习
java练习
java练习

举例2

public class Demo06 {
    public static void main(String[] args) throws Exception{
        FileReader fr = new FileReader("D:\\练习2.txt");
        BufferedReader br = new BufferedReader(fr);
        char[] buf=new char[1024];
        int count=0;
        String line=null;
        //readLine()一行一行的读
        while ((line=br.readLine())!=null){
            System.out.println(line);
        }
        br.close();
        fr.close();
    }
}
//输出:
java练习
java练习
java练习
java练习
java练习
java练习
java练习
java练习
java练习
java练习
posted @ 2022-02-13 14:03  史小鹏  阅读(29)  评论(0)    收藏  举报