Imput Stream和Output Stream类通常是用来处理“字节流”即“恒观”DTU秋史一些啊文件,而Reader和Write类则是用来处理“字符流”的,也就是文本文件。与字节输入输出流的功能一样,字符输入输出流类Reader和Write只是建立一条通往文本文件的通道,而要实现对字符数据的读写操作,还需要相应的读方法和写方法来完成。

Reader类的常用方法

  • public int read()   从输入流中读一个字符
  • public int read(char[ ]cbuf)   从输入流中读最多cbuf. length个字符,存入字符数组cbuf中
  • public int read(char[ ]buffer,int off,int len)   从输入流中读最多len个字符,存入字符数组cbuffer中从off开始的位置 
  • public long skip(long n)   从输入流中最多向后跳n个字符
  • public boolean ready()   判断流是否做好读的准备
  • public void mark(int read  AheadLimit )   标记输入流的当前位置
  • public boolean  markSupported ()   测试输入流是否支持mark
  • public void reset()   重定位输入流
  • public void close()   关闭输入流

Writer类的常用方法

  • public void write(int c)   将单一字符c输出到流中
  • public void write(String str)   将字符串str输出到流中
  • public void write(char[]cbuf)   将字符数组cbuf输出到流
  • public void write(char[]cbuf,int off,int len)   将字符数组按指定的格式输出(off表示索引,len表示写入的字符数)到流中
  • public void flush()   将缓冲区中的数据写到文件中
  • public void close()   关闭输出流

使用FileReader类读取文件

文件字符输入流类 FileReader 是继承自 InputStreamReader 类,而 InputStreamReader 类又继承自Reader类,因此Reader类与 InputStream  Reader类所提供的方法均可供 FileReader 类所创建的对象使用。在使用 FileReader 类读取文件时,必须先调用 FileReader ()构造方法创建 FileReader 类的对象,再利用它来调用read()方法。

FileReader 类的构造方法

  • public  FileReader (String name)根据文件名称创建一个可读取的输入流对象。

例题:利用FileReader类读取C:\java文件夹下的文本文件test.txt,其内容如下图

Reader类型 java reader类所处理的是_p2p

 

 

 

//filename:App10_5. java  FileReader 类的使用
import java.io.*;
public class App10_5
{
  public static void main(String[]args) throws IOException
  {
    char[]c=new char[500];//创建可容纳500个字符的数组。
    try(FileReader fr=new FileReader("C:/java/test.txt");)
    {
      int num=fr.read(c);//将数据读入字符数组c内,并返回读取的字符数a
      String str=new String(c,0,num);//将字符数组转换成字符串
      System.out.println("读取的字符个数为:"+num+",其内容如下:");
      System.out.println(str);
    }
  }
}

该程序运行结果为:

读取的字符个数为:29,其内容如下:

我喜欢Java!因为它功能强大

安全性好

可靠性高

使用FileWriter类写入文件

文件字符输出流类 FileWriter 继承自 OutputStreamWriter 类,而 OutputStreamWriter 类又继承自Writer类,因此Writer类与 OutputStreamWriter 类所提供的方法均可供 FileWriter 类所创建的对象使用。

FileWriter类的构造方法

  • public  FileWriter (String filename)    根据所给文件名创建一个可供写入字符数据的输出流对
  • 象,原先的文件会被覆盖
  • public  FileWriter (String fillename,boolean a)    同上,但如果a设置为true,则会将数据追加在原先文件的后面

使用BufferedReader类读取文件

缓冲字符输入流类 BufferedReader 继承自Reader类, BufferedReader 类是用来读取缓冲区里的数据。使用 BufferedReader 类来读取缓冲区中的数据之前,必须先创建 FileReader 类对象,再以该对象为参数来创建 BufferedReader 类的对象,然后才可以利用此对象调用相应的方法来读取缓冲区中的数据。

Buffered  Reader类的构造方法

  • public  BufferedReader (Reader in)    创建缓冲区字符输入流
  • public  BufferedReader (Reader in,int size)    创建缓冲区字符输入流,并设置缓冲区大小

Buffered  Reader类的常用方法

  • public int read()   读取单一字符
  • public int read(char[]cbuf)    从流中读取字符并写入到字符数组cbuf中
  • public int read(char[]cbuf,int off,int len)    从流中读取字符存放到字符数组ebuf中(off表示数组下)标,len表示读取的字符数) 跳过n个字符不读取
  • public long skip(long n)     读取一行字符串
  • public String read Line()    关闭流

 使用BufferedWriter类写入文件

缓冲字符输出流类 BufferedWriter 继承自Writer类, BufferedWriter 类是用来将数据写入到缓冲区中。使用 BufferedWriter 类将数据写入缓冲区的过程与使用 BufferedReader 类从缓冲区中读出数据的过程相似。

BufferedWriter 类的构造方法

  • public  BufferedWriter (Writer out)    创建缓冲区字符输出流
  • public  BufferedWriter (Writer out,int size)    创建缓冲区字符输出流,并设置缓冲区大小 

BufferedWriter 类的常用方法

  • public void write(int e)    将单一字符写人缓冲区中
  • public void write(char[]cbuf,int off,int len)    将字符数组cbuf按指定的格式写入到输出缓冲区中(off表示数组下标,len表示写入的字符数)
  • public void write(String str,int off,int len)    写入字符串(off表示下标,len表示写入的字符数)
  • public void newLine()    写人回车换行字符
  • public void flush()    将缓冲区中的数据写到文件中
  • public void close()     关闭流