Java日志第41天 2020.8.15

字符缓冲输出流

java.io.BufferedWriter extends Writer

继承自父类的成员方法:

- void write(int c):写入单个字符

- void write(char[] cbuf):写入字符数组

-abstract void write(char[] cbuf, int off, int len):写入字符数组的某一部分,off数组的开始索引,len写的字符个数

- void write(String str):写入字符串

- void write(String str, int off, int len):写入字符串的某一部分,off字符串的开始缩阴,len写的字符个数

-void flush():刷新该流的缓冲

- void close():关闭此流,但要先刷新它

构造方法:

BufferedWriter(Writer out):创建一个使用默认大小的输出缓冲区的缓冲字符输出流

BufferedWriter(Writer out, int size):创建一个使用给定大小输出缓冲区的新缓冲字符输出流

特有的成员方法:

void newLine():写入一个行分隔符,会根据不同的操作系统获取不同的行分隔符

使用步骤:

1.创建字符缓冲输出流对象,构造方法中传递字符输出流

2.调用字符缓冲输出流中的方法write,把数据写入到内存缓冲区中

3.调用字符缓冲输出流中的方法flush,把内存缓冲区中的数据刷新到文件中

4.释放资源

public class Demo01BufferedWriter {
    public static void main(String[] args) throws IOException {
        //创建字符缓冲输出流对象,构造方法中传递字符输出流创建字符缓冲输出流对象,构造方法中传递字符输出流
        BufferedWriter bw = new BufferedWriter(new FileWriter("E:\Java\Practice\src\Practice\demo15\a.txt"));
        //调用字符缓冲输出流中的方法write,把数据写入到内存缓冲区中
        for (int i = 0; i < 3; i++) {
            bw.write("Hello, World!"+(i+1));
            bw.newLine();
        }
        //调用字符缓冲输出流中的方法flush,把内存缓冲区中的数据刷新到文件中
        bw.flush();
        //释放资源
        bw.close();
    }
}

结果如下:

字符缓冲输入流

java.io.BufferedReader extends Reader

继承自父类的共性成员方法:

- int read():读取单个字符并返回

- int read(char[] cbuf):一次读取多个字符,将字符读入数组

- void close():关闭该流并释放与之关联的所有资源

构造方法:

BufferedReader(Reader in)

BufferedReader(Reader in, int size)

特有的成员方法:

String readLine():读取一个文本行,读取一行数据

行的终止符号:通过下列字符之一即可认为某行已终止:换行(' ')、回车(' ')或回车后直接跟着换行( )

返回值:包含该行内容的字符串,不包含任何终止符,如果已到达流末尾则返回null

使用步骤:

1.创建字符缓冲输入流对象,构造方法中传递字符输入流

2.使用字符缓冲输入流中的方法read、readLine读取文本

3.释放资源

public class Demo02BufferedReader {
    public static void main(String[] args) throws IOException {
        //创建字符缓冲输入流对象,构造方法中传递字符输入流
        BufferedReader br = new BufferedReader(new FileReader("E:\Java\Practice\src\Practice\demo15\a.txt"));
        //使用字符缓冲输入流中的方法read、readLine读取文本
        String line;
        while((line = br.readLine()) != null){
            System.out.println(line);
        }
        //释放资源
        br.close();
    }
}

结果如下:

原文地址:https://www.cnblogs.com/Gazikel/p/13509813.html