import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import org.junit.Test;
/**
* * Io流
*
* 4个抽象基类
*
* 抽象基类 节点流:-- 文件字节流缓冲流 ---处理流: 的一种 (缓冲流:文件操作的效率高。)
* InputStream FileInputStream BufferedInputStream
* OutputStream FileOutputStreamBufferedOutputStream 需要--循环后flush();
* 节点流:-- 文件字符流
* Reader FileReaderBufferedReader
* Writer FileWriterBufferedWriter 需要--循环后flush();
*
*
*
* 处理流 : ---- 缓冲流 缓冲流 能加快 文件处理效率 ,实际开发中 均用缓冲流 处理文件 。 速度快 效率高。
*
*
* BufferedInputStream
* BufferedOutputStream 需要--循环后flush();
*
BufferedReader-----------------可以继续 用 char[]固定 数组长度 接收 ,
* 也可以用 BufferedReader.readLine() 一行行接收。 该方法返回 读取此行的字符串
* BufferedWriter ----------------- 需要--循环后flush();
*
* 缓冲流的 练习 。------ 缓冲流关闭 时 close() 会自动关闭 节点流 。 不用人工手动调用。 先关闭 输出流 。。。。 再关闭输入流。
*
*
*
*
*
*
*
*
* @author Administrator
*
*/
public class TestBufferedReaderBufferedWriter {
/**
* 利用 处理流的 缓冲流 【字符缓冲流】 复制 文本文件
*/
@Test
public void testBufferedReaderBufferedWriter(){
// 1
File file = new File("1234.txt");
File dest = new File("1234_copy_2.txt");
// 2
FileReader fr=null;
FileWriter fw=null;
try {
fr = new FileReader(file);
fw = new FileWriter(dest);
// 3 缓冲流 --加快文件处理效率
BufferedReader br =new BufferedReader(fr);
BufferedWriter bw =new BufferedWriter(fw);
// 4.把读取的内容写入到磁盘
// 方式一:
// char[] c = new char[1024];
// int len;
// while((len = br.read(c))!=-1){
// bw.write(c, 0, len);
把最后的一个数组的内容从内存 移到磁盘中。
// bw.flush();
// }
// 方式二:
String st;
while((st =br.readLine())!=null){
// 默认不换行 +需要 bw.newLine(); 或者 手动bw.write(st+"\n");
bw.write(st);
bw.newLine();
bw.flush();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(fr !=null){
try {
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(fw !=null){
try {
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
@Test
public void testBufferedReader(){
// 1
File file = new File("1234.txt");
File dest = new File("1234_copy.txt");
// 2
FileReader fr=null;
FileWriter fw=null;
try {
fr = new FileReader(file);
fw = new FileWriter(dest);
// 3 缓冲流 --加快文件处理效率
BufferedReader br =new BufferedReader(fr);
BufferedWriter bw =new BufferedWriter(fw);
// 4.遍历
// 方式一:
// char[] c = new char[1024];
// int len;
// while((len = br.read(c))!=-1){
// String s = new String(c,0,len);
// System.out.print(s);
//
// }
// 方式二:
String st;
while((st =br.readLine())!=null){
System.out.println(st);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(fr !=null){
try {
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(fw !=null){
try {
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
java Io 缓冲流 BufferedReader BufferedWriter 笔记
最新推荐文章于 2023-10-23 16:12:13 发布