一般情况下,为了提高字符文件读/写效率,通常需要为文件读/写器添加一个缓冲读/写器,分别为BufferedReader类和BufferedWriter类。

1:BufferedReader类

假如上面的例子使用的文件Student.txt是一个学生名单,每个名字占一行。如果我们想读取名字,那么每次必须读取一行,但FileReader类没有提供这种方法,所以必须把这个流(对象)再接到另一个流上,从后一个流中读取名单。java提供名为BufferedReader的类,主要是用来实现读取文件中的一个段落。其格式如下:

BufferedReader br=new BufferedReader(newFileReader(filename));

也可以改为以下形式:

FileReaderto file=new FileReader(filename);

BufferredReader br=new BufferedWriter(tofile);

在声明BufferedReader类对象后,就可以调用其readLine方法来读取文件中的数据。当读取到回车符(/n)是,就表示本次的读取结束,将所读到的内容以字符串数据的形式输入到程序中,下次读取从回车符后面的数据开始。当所有的数据内容都读取完后,返回值null。在完成文件数据的读取后,需要用close()方法关闭打开的文件。示例代码如下:

import java.io.*;
public class BufferedReaderDemo {
public static void main(String []args)throws IOException{
FileReader fr=new FileReader("student.txt");
BufferedReader br=new BufferedReader(newFileReader("Student.txt"));
String Strings = br.readLine();//创建变量S用于储存从文件中读到的第一行数据。
Object s = null;
while (s!=null){//判断s变量是否接受数据
System.out.print(s+"/n");
s=br.readLine();//读取下一行数据并储存到s中
}
br.close();//关闭流
} private static Reader newFileReader(String string) {
// TODO Auto-generated method stub
return null;
}
}

2:BufferedWriter类

类似的,可以将BufferedWriter流和FileWriter流连接在一起,然后使用BufferedWriter流将数据写到目的地,创建BufferedWriter类对象的格式如下:

BufferedWriter br=new BufferedWriter(newFileWriter(filename));

或者是

FileWriterfrom file=new FileWriter(filename);

BufferedWriter bw=new BufferedWriter(fromfile);

在声明BufferedWriter类的对象后,调用其newLine()方法来写入一个回车符。因为不同的操作系统平台,其回车符的表达方式不同,所以,可以使用newLine()方法直接产生系统声明的回车符,而不必在意其具体的表达方式。例如,下面的陈故乡创建一个文件student。txt并写入字符串和回车符。

示例代码如下:

import java.io.*;

public class BufferedWriterDemo {
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(newFileWriter("student.txt"));
bw.write("this is my student.txt");// 向文件中输入字符串
bw.newLine();// 换行
bw.write("xixi");// 想文件中写入内容
bw.close();
}
}

字节流和字符流(BufferedReader类和BufferedWriter类)的更多相关文章

  1. java-I/O File类(5)-Reader和Writer、OutputStreamWriter 、BufferedWriter、字节流和字符流的区别

      标签: outputstreamwriterreader字符file方法 2015-05-14 23:06 469人阅读 评论(0) 收藏 举报  分类: 孙鑫-java基础(16)  I-O(4 ...

  2. IO流(File类,IO流的分类,字节流和字符流,转换流,缓冲流,对象序列化)

    1.File类 File类可以在程序中 操作文件和目录.File类是通过建立File类对象,在调用File类的对象来进行相关操作的. 示例: public class Demo01 { public  ...

  3. 牛客网Java刷题知识点之输入流、输出流、字节流、字符流、字节流的抽象基类(InputStream、OutputStream)、字符流的抽象基类(Reader、Writer)、FileWriter、FileReader

    不多说,直接上干货! IO流用来处理设备之间的数据传输. java对数据的操作是通过流的方式. java用于操作流的对象都在IO包中. IO流按操作数据分为两种:字节流和字符流. IO流按流向分为:输 ...

  4. java IO输入输出流中的各种字节流,字符流类

    字节流字节流主要是操作byte类型数据,也byte数组为准,主要操作类就是·字节输出流:OutputStream·字节输入流:InputStream字符流在程序中一个字符等于2个字节,那么java提供 ...

  5. 字节流和字符流(InputStream类和OutputStream类)

    java流包括字节流和字符流,字节流通过I/O设备以字节数据的方式读入,而字符流则是通过字节流读入数据转换成字符"流"的形式由用户驱使. InputStream是所有字节输入流的父 ...

  6. JAVA IO分析一:File类、字节流、字符流、字节字符转换流

    因为工作事宜,又有一段时间没有写博客了,趁着今天不是很忙开始IO之路:IO往往是我们忽略但是却又非常重要的部分,在这个讲究人机交互体验的年代,IO问题渐渐成了核心问题. 一.File类 在讲解File ...

  7. JAVA之旅(二十五)——文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine

    JAVA之旅(二十五)--文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine 我们继续IO上个篇 ...

  8. 关于Java的File类、字节流和字符流

    一.File类: 在Windows下的路径分隔符(\)和在Linux下的路径分隔符(/)是不一样的,当直接使用绝对路径时,跨平台会报No Such file or diretory异常. File中还 ...

  9. JavaSE学习笔记(14)---File类和IO流(字节流和字符流)

    JavaSE学习笔记(14)---File类和IO流(字节流和字符流) File类 概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 构造方 ...

随机推荐

  1. 【BZOJ】1513: [POI2006]Tet-Tetris 3D

    题意 给\(n(1 \le n \le 20000)\)个立方体\((x, y, z)\),依次落下.求所有立方体落下完了以后最高的高度. 分析 平面求最大值,平面更新最大值. 题解 二维线段树走起, ...

  2. HDU 1710 二叉树遍历,输入前、中序求后序

    1.HDU  1710  Binary Tree Traversals 2.链接:http://acm.hust.edu.cn/vjudge/problem/33792 3.总结:记录下根结点,再拆分 ...

  3. iOS9 升级XCode7遇到的问题收集

    开发环境运行      各位可能会觉得,笔者在此还要讲开发环境的运行,是不是多此一举.其实并非如此,综合笔者这几年iOS开发经验的总结,运行新版本,特别是测试版本的Xcode是一个需要格外小心的事情, ...

  4. 关于多条id相同,只取其中一条记录的sql语句

    需要使用:分区函数用法(partition by 字段) select *,row_number() over(partition by item order by date  ) as index ...

  5. OSG 自定义数据类型 关键帧动画

    OSG 自定义数据类型 关键帧动画 转自:http://blog.csdn.net/zhuyingqingfen/article/details/12651017 /* 1.创建一个AnimManag ...

  6. ActiveMQ 即时通讯服务——浅析

    一. 概述与介绍 ActiveMQ 是Apache出品,最流行的.功能强大的即时通讯和集成模式的开源服务器.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provide ...

  7. checkbox全选与反选

    用原生js跟jquery实现checkbox全选反选的一个例子 原生js: <!DOCTYPE html> <html lang="en"> <hea ...

  8. Lanterns

    Lanterns 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=86640#problem/B 题目: Description ...

  9. JAVA创建并写入内容到xlsx文件

    首先需要在web项目中导入jxl.jar 包 //action中代码 public String downloadReport(){        String path = System.getPr ...

  10. Js中找任意对象的原型方法及改造原型

    Java中有运行时类型识别,js可以很方便的模仿这个特性,因为所有js对象都有一个属性constructor(构造器),表示这个对象的构造方法,原型与构造方法同名,所以可以通过这儿知道任意对象的原型名 ...