缓冲流增强了读写文件的能力,比如Student.txt是一个学生的名单,每个姓名占一行。如果我们想要读取名字,那么每次必须读取一行,使用FileReader流很难完成这样的任务,因为我们不清楚一行有多少字符,FileReader类没有提供读取一行的方法。

  1.BufferedReader和BufferedWriter类创建的对象称作缓冲输入、输出流。二者的源和目的地必须是字符输入流和字符输出流。

  构造方法:

  BufferedReader(Reader in);

  BufferedWriter (Writer out);

  2. BufferedReader和BufferedWriter类读写文件的方法:

  readLine() BufferedReader流读取文本行

  write(String s,int off,int len)BufferedWriter流把字符串s写到文件中

  newLine(); BufferedWriter流向文件写入一个回行符

  示例

  创建主类Demo38

  文件如下:

同样,保证c.txt为空内容,先从里面写,再从外面读

  import java.io.BufferedReader;

  import java.io.BufferedWriter;

  import java.io.File;

  import java.io.FileReader;

  import java.io.FileWriter;

  import java.io.IOException;

  public class Demo38 {

  public static void main(String[] args) {

  String[] content = {"我是中国人","我最爱祖国","我讨厌日本人","我也讨厌韩国人"}; //写入字符串数组

  File file = new File("C:\\Users\\blue\\Desktop\\test\\c.txt"); //写入目标文件

  try {

  FileWriter fw = new FileWriter(file); //第一层嵌套

  BufferedWriter bw = new BufferedWriter(fw); //传递给Writer的子类

  for(String str:content){ //增强for循环

  bw.write(str); //写入字符串

  bw.newLine(); //每一个字符串还换行

  }

  bw.close(); //从上层数据关流

  fw.close();

  写入成功 且换行成功

//操作的输入流对象

  FileReader fr = new FileReader(file);

  BufferedReader br = new BufferedReader(fr);

  String string = null;

  while((string = br.readLine())!= null){ //读取数组,到达文件尾部就是空

  System.out.println(string);

  }

  br.close();

  fr.close();

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

  }

  运行结果

原文链接:http://www.maiziedu.com/wiki/java/buffered/

Java中的缓冲流详解的更多相关文章

  1. java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET

    java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET 亲,“社区之星”已经一周岁了!      社区福利快来领取免费参加MDCC大会机会哦    Tag功能介绍—我们 ...

  2. Java中的main()方法详解

    在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是 ...

  3. java中的缓冲流BufferedWriter和BufferedReader

    java中的缓冲流有BufferedWriter和BufferedReader 在java api 手册中这样说缓冲流: 从字符输入流中读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取.可以指 ...

  4. Java I/O : Java中的进制详解

    作者:李强强 上一篇,泥瓦匠基础地讲了下Java I/O : Bit Operation 位运算.这一讲,泥瓦匠带你走进Java中的进制详解. 一.引子 在Java世界里,99%的工作都是处理这高层. ...

  5. JAVA中的GC机制详解

    优秀Java程序员必须了解的GC工作原理 一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只 ...

  6. HTTP协议报文、工作原理及Java中的HTTP通信技术详解

    一.web及网络基础       1.HTTP的历史            1.1.HTTP的概念:                 HTTP(Hyper Text Transfer Protocol ...

  7. java中的io系统详解(转)

    Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java 内用 U ...

  8. java中的io系统详解

    相关读书笔记.心得文章列表 Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字 ...

  9. Java中的枚举使用详解

    转载至:http://www.cnblogs.com/linjiqin/archive/2011/02/11/1951632.html package com.ljq.test; /** * 枚举用法 ...

随机推荐

  1. `Facebook.Unity.Settings' has already been imported error solution

    after import facebook sdk to unity, i get the '`Facebook.Unity.Settings' has already been imported' ...

  2. vuecli结合eslint静态检查

    vuecli结合eslint静态检查 搭建vue项目开发可能选择vue-cli项目脚手架快速创建vue项目.(https://github.com/vuejs/vue-cli) 安装vue-cli n ...

  3. 用最简单的MVC模式输出内容

    MVC是模型(model)-视图(view)-控制器(controller)的缩写,它的作用是使代码分离,可维护性高.重用性高 编写Model层: <?php class model{ publ ...

  4. MySQL☞lower函数

    lower(列名/字符串):将大写字母改成小写字母 格式: select  lower(列名/字符串)  from  表名 如下图:

  5. VMware 15.0下载及安装教程

    虚拟机 VMware WorkStation Pro15 下载及安装详细解 9虚拟机 VMware WorkStation Pro15 下载及安装详细解. 虚拟机官方网站: https://www.v ...

  6. Maya Api笔记 - How polygons are handled internally

    为加深记忆和理解Maya的Polygon,尝试利用空闲时间翻译Maya Api文档相关章节. How polygons are handled internally - 多边形是如何在内部处理的

  7. Spring Boot下的lombok安装 (日志) 不能识别log变量问题

    参考地址:http://blog.csdn.net/blueheart20/article/details/52909775 ps:除了要加载依赖之外 还要安装lombok插件

  8. 如何区别cookie和token?---测试cookie和token接口时先看。

    cookie 是什么? cookie--------------在浏览器中的长相?火狐浏览器 ----------------------------------------------------- ...

  9. 【转】Unity 使用xLua遇到的坑

    在我们使用xLua作为Unity中lua集成的解决方案时,遇到了一个问题,就是当我们使用在lua中把UI中的某个控件绑定相应的事件(如按钮的onClick事件),xLua绑定这个事件是用委托实现的,具 ...

  10. 【转】从零开始学习Skynet_examples研究

    转自 http://blog.csdn.net/mr_virus/article/details/52330193 一.编译Skynet: 1.用ubuntu15.10直接 make linux 编译 ...