/*
* 字符缓冲流(字符缓冲区)
* 定义:为了提高读写的能力,本身没有读写的能力,要想进行读写就必须借助于字符流实现.
* 可以将缓冲流类比于催化剂或者高速的小车
* 字符缓冲流分类:
* 字符缓冲读入流:BufferedReader 没有读的能力
* 字符缓冲写出流:BufferedWriter 没有写的能力
*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedReader_and_BufferedWriter {
public static void main(String[] args) throws Exception {
//字符缓冲写出流
//BufferedWriter1();
//字符缓冲读入流
//BufferedReader1();
//使用缓冲流实现文件的复制
CopyTXT();
}
//字符缓冲读入流
private static void BufferedReader1() throws IOException {
BufferedReader bufferedReader=new BufferedReader(new FileReader("Test002.txt"));
//一次读一个字符
/*
int num=0;
while ((num=bufferedReader.read())!=-1) {
System.out.println((char)num);
}
*/
//一次读多个
/*
char[] ch = new char[1024];
while (bufferedReader.read(ch)!=-1) {
System.out.println(ch);
}
*/
//一次读一行 readline()
//原理:一个字符一个字符的读,直到读到换行符为止.然后将所有读到的字符返回
//注意点:不会将当前的换行符返回 ;返回值就是我们读到的内容.如果读完了,返回null
/*
String data=null;
while ((data=bufferedReader.readLine())!=null) {
System.out.print(data);
//换行
System.out.println();
}
*/
bufferedReader.close();
}
//字符缓冲写出流
private static void BufferedWriter1() throws IOException {
BufferedWriter bufferedWriter=new BufferedWriter(new FileWriter("Test002.txt"));
bufferedWriter.write("数风流人物,还看今朝!");
//换行
//bufferedWriter.newLine();
bufferedWriter.close();
}
//使用缓冲流实现文件的复制
private static void CopyTXT() throws IOException {
BufferedReader bufferedReader=new BufferedReader(new FileReader("test002.txt"));
BufferedWriter bufferedWriter=new BufferedWriter(new FileWriter("test003.txt"));
//读写
//使用一次读一个
/*
int num =0 ;
while ((num = bufferedReader.read()) != -1) {
bufferedWriter.write(num);//可以实现自动转换
fileWriter.flush();
}
*/
//使用一次读多行
/*
char[] arr = new char[1024];
while (( bufferedReader.read(arr)) != -1) {
bufferedWriter.write(num);//可以实现自动转换
fileWriter.flush();
}
*/
//使用一次读一行
String data = null;
while ((data = bufferedReader.readLine()) != null) {
bufferedWriter.write(data);
bufferedWriter.newLine();
bufferedWriter.flush();
}
bufferedReader.close();
bufferedWriter.close();
}
}