java Io 缓冲流 BufferedReader BufferedWriter 笔记

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();
}

}
}


}








}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

prefectjava

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值