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():读取一个文本行,读取一行数据
行的终止符号:通过下列字符之一即可认为某行已终止:换行('\n')、回车('\r')或回车后直接跟着换行(\r\n)
返回值:包含该行内容的字符串,不包含任何终止符,如果已到达流末尾则返回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(); } }
结果如下: