您的位置:首页 > Web前端

java Io 缓冲流 BufferedReader BufferedWriter 笔记

2016-03-31 11:23 633 查看
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();
}

}
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: