package csdn.java3;
import org.junit.Test;
import java.io.*;
/**
* 处理流之一:缓冲流的使用
*
* 1.缓冲流:
* BufferedInputStream
* BufferedOutputStream
* BufferedReader
* BufferedWriter
*
* 2.作用:提供流的读取、写入的速度
* 提高读写速度的原因:内部提供了一个缓冲区
*
* 3. 处理流,就是“套接”在已有的流的基础上。
*
*/
public class BufferedTest {
//使用BufferedReader和BufferedWriter实现文本文件的复制
@Test
public void testBufferedReaderBufferedWriter(){
BufferedReader br = null;
BufferedWriter bw = null;
try {
//创建文件和相应的流,匿名方式来写
br = new BufferedReader(new FileReader(new File("D:\\eclipse-workspace\\csdn\\src\\csdn\\java3\\hello.txt")));
bw = new BufferedWriter(new FileWriter(new File("D:\\hello.txt")));
//读写操作
//方式一:使用char[]数组
/*char[] cbuf = new char[1024];
int len;
while((len = br.read(cbuf)) != -1){
bw.write(cbuf,0,len);
}*/
//方式二:使用String
String data;
while((data = br.readLine()) != null){
//方法一:
//bw.write(data + "\n");//data中不包含换行符,自己手动加\n
//方法二:
bw.write(data);//一次写入一行字符串
bw.newLine(); //提供换行的操作
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//关闭资源
if(bw != null){
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(br != null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}