JAVA——缓冲流(字节缓冲流 BufferedWriter 和 BufferedWrite r)

package com.cskaoyan.charstream.buffered;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;

/**
* @author zhangshuai@Cskaoyan.onaliyun.com.
* @version 1.0
*
* 1. 同在字节流中引入缓冲流的原因相同,出于效率的考虑,在字符流中,我们同样引入缓冲流。
* 2. 缓冲流中,定义了自己独有的方法(Reader和Writer中没有的方法)

BufferedWriter
void newLine()
写入一个行分隔符

BufferedReader
String readLine()
读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。

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

结合以上两个缓冲字符流中,定义的缓冲流独有的方法,可以实现按行复制文本文件的功能

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

2. BufferedReader(Reader in)
创建一个使用默认大小输入缓冲区的缓冲字符输入流。

*/
public class Demo1 {

public static void main(String[] args) throws IOException {
// 1.创建流对象
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("b.txt"));
BufferedReader bufferedReader = new BufferedReader(new FileReader("a.txt"));


// 2. 按行复制文本文件

String lineStr;
while ((lineStr = bufferedReader.readLine()) != null) {
// 把读取到的一行字符串,写入缓冲字符输出流
bufferedWriter.write(lineStr);
// 在一行字符串之后,添加换行符
bufferedWriter.newLine();
}

// 关闭流,关闭最上层的包装流即可
bufferedReader.close();
bufferedWriter.close();

}

}
posted @ 2020-09-02 20:16  LY心情笔记  阅读(309)  评论(0)    收藏  举报