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(); } } } } }
相关文章推荐
- java Io 缓冲流 BufferedInputStream BufferedOutputStream 笔记
- ckeditor html标签的class 等attribute属性都被屏蔽啦,替换成空的解决方案
- 对比HTML和XML
- Booktrack Classroom(有声电子书)
- div内元素是否在可见区域的判断与控制
- Booktrack Classroom(有声电子书)
- Tokonda Messenger(信使)
- 文章标题
- jQuery EasyUI使用教程之在数据网格的页脚中显示摘要信息
- jQuery仪表盘指示器动画插件 6种仪表样式
- jquery的$().each,$.each的区别
- js如何获取一个月的天数 data javascript
- 编译器重复定义错误:error C2371: 'SIZE' : redefinition; different basic types
- js 无线弹窗
- css 兼容大全
- 前端web学习记录
- Tokonda Messenger(信使)
- 用HTML+CSS实现简单的下拉列表
- javascript笔记——jsonp
- CSS左侧固定宽 右侧自适应(兼容所有浏览器)