Reader和Writer类

 BufferedReader类:

构造方法:

BufferedReader(Reader in)   参数in为指定被装饰的Reader类,为提高效率。一般用来装饰InputStreamReader类
BufferedReader(Reader in, int sz)   参数in为指定被装饰的Reader类,sz为缓冲区大小
void close()     关闭该流。
void mark(int readAheadLimit)  标记流中的当前位置。
boolean markSupported()  判断此流是否支持 mark() 操作(它一定支持)。
int read()     读取单个字符。
int read(char[] cbuf, int off, int len)     将读入的字符保存数组的中,off为保存的位置,len为每次保存的字符数。返回值为实际返回的字符数量
String readLine()  读取一个文本行。
boolean ready()  判断此流是否已准备好被读取。
void reset()  将流重置为最新的标记。
long skip(long n)  跳过字符。

BUfferedWriter类:常用来装饰OutputStreamWriter类,
BufferedWriter(Writer out)     创建一个使用默认大小输出缓冲区的缓冲字符输出流。
BufferedWriter(Writer out, int sz)  创建一个使用指定大小输出缓冲区的新缓冲字符输出流。
void close()     关闭该流。
void flush()     刷新该流的缓冲。
void newLine()    写入一个行分隔符。
void write(char[] cbuf, int off, int len)   写入字符数组的某一部分。
void write(int c)    写入单个字符。
void write(String s, int off, int len)  写入字符串的某一部分。

InputStreamReader类:适配器:InputStreamReader把InputStream转换为Reader,可以指定数据源的字符编码
常用来装饰:FileInputStream类
InputStreamReader(InputStream in)
          使用本地平台的字符编码读取输入流中的字符
InputStreamReader(InputStream in, String charsetName)
          使用给定的字符编码读取输入流中的字符
InputStreamReader(InputStream in, Charset cs)
          创建使用给定字符集的 InputStreamReader。
InputStreamReader(InputStream in, CharsetDecoder dec)
          创建使用给定字符集解码器的 InputStreamReader。
方法:
 void close()
          关闭该流。
 String getEncoding()
          返回此流使用的字符编码的名称。
 int read()
          每次读取单个字符。
 int read(char[] cbuf, int offset, int length)
           将读入的字符保存数组的中,off为保存的位置,length为每次保存的字符数。返回值为实际返回的字符数量
 boolean ready()
          告知是否准备读取此流。
为提高读数据一般将InputStreanReader类包装在BufferedReader类中。而InputStreamReader常用来包装FileInputStream类。



OutputStreamWriter类:适配器,将OutputStream转化为Writer,可以指定数据汇的编码常用来装饰FileOutputStream类
构造函数:
OutputStreamWriter(OutputStream out)
          按照本地平台的字符编码想输出流写入数据
OutputStreamWriter(OutputStream out, String charsetName)
          按照特定的字符编码charsetName向输出流写入数据 。
OutputStreamWriter(OutputStream out, Charset cs)
          创建使用给定字符集的 OutputStreamWriter。
OutputStreamWriter(OutputStream out, CharsetEncoder enc)
          创建使用给定字符集编码器的 OutputStreamWriter。
OutputStreamWriter(OutputStream out, String charsetName)
          创建使用指定字符集的 OutputStreamWriter。
方法:
void close()
          关闭该流。
void flush()
          刷新该流的缓冲。
String getEncoding()
          返回此流使用的字符编码的名称。
void write(char[] cbuf, int off, int len)
          将字符数组的一部分写入到输出流中,off起始写的位置,len为写的长度
void write(int c)
          向输出流写入一个字符
void write(String str, int off, int len)
          将字符串的一部分写入输出流中
为提高写数据的效率,一般将OutputStreamWriter类包装在BufferedWriter中,然后将BufferedWriter类包装在PrintWriter类中,而OutputStreamWriter类常用来包装FileOutputWriter类。

PrintWriter类: 常用来装饰BufferedWriter类
构造方法:
PrintWriter(File file)
          使用指定文件创建不具有自动行刷新的新 PrintWriter。
PrintWriter(File file, String csn)
          创建具有指定文件和字符集且不带自动刷行新的新 PrintWriter。
PrintWriter(OutputStream out)
          根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。
PrintWriter(OutputStream out, boolean autoFlush)
          通过现有的 OutputStream 创建新的 PrintWriter。
PrintWriter(String fileName)
          创建具有指定文件名称且不带自动行刷新的新 PrintWriter。
PrintWriter(String fileName, String csn)
          创建具有指定文件名称和字符集且不带自动行刷新的新 PrintWriter。
PrintWriter(Writer out)
          创建不带自动行刷新的新 PrintWriter。
PrintWriter(Writer out, boolean autoFlush)
          创建新 PrintWriter。
方法:
PrintWriter append(char c)
          将指定字符追加到此 writer。
 PrintWriter append(CharSequence csq)
          将指定的字符序列追加到此 writer。
 PrintWriter append(CharSequence csq, int start, int end)
          将指定字符序列的子序列追加到此 writer。
 boolean checkError()
          如果流没有关闭,则刷新流且检查其错误状态。
 void close()
          关闭该流。
 void flush()
          刷新该流的缓冲。
 PrintWriter format(Locale l, String format, Object... args)
          使用指定格式字符串和参数将一个格式化字符串写入此 writer 中。
 PrintWriter format(String format, Object... args)
          使用指定格式字符串和参数将一个格式化字符串写入此 writer 中。
 void print(boolean b)
          打印 boolean 值。
 void print(char c)
          打印字符。
 void print(char[] s)
          打印字符数组。
 void print(double d)
          打印 double 精度浮点数。
 void print(float f)
          打印一个浮点数。
 void print(int i)
          打印整数。
 void print(long l)
          打印 long 整数。
 void print(Object obj)
          打印对象。
 void print(String s)
          打印字符串。
 PrintWriter printf(Locale l, String format, Object... args)
          使用指定格式字符串和参数将格式化的字符串写入此 writer 的便捷方法。
 PrintWriter printf(String format, Object... args)
          使用指定格式字符串和参数将格式化的字符串写入此 writer 的便捷方法。
 void println()
          通过写入行分隔符字符串终止当前行。
 void println(boolean x)
          打印 boolean 值,然后终止该行。
 void println(char x)
          打印字符,然后终止该行。
 void println(char[] x)
          打印字符数组,然后终止该行。
 void println(double x)
          打印双精度浮点数,然后终止该行。
 void println(float x)
          打印浮点数,然后终止该行。
 void println(int x)
          打印整数,然后终止该行。
 void println(long x)
          打印 long 整数,然后终止该行。
 void println(Object x)
          打印 Object,然后终止该行。
 void println(String x)
          打印 String,然后终止该行。
protected  void setError()
          指示已发生错误。
 void write(char[] buf)
          写入字符数组。
 void write(char[] buf, int off, int len)
          将字符数组的某一部分写入到输出源中。
 void write(int c)
          将单个字符写入到输出源中。
 void write(String s)
          将单个字符串写入到输出源中。
 void write(String s, int off, int len)
          将字符串的某一部分写入到输出源中



FileReader类:是InputStreamReader的一个子类,用于从文件中读取字符数据,该类只能按照本地平台的字符编码读取数据:构造方法如下:继承InputStreamReader的方法
FileReader(File file)
          file为指定需要读取的文件
FileReader(FileDescriptor fd)
          fd为需要读取的文件描述符
FileReader(String name)
          参数name指定需要读取的文件的路径

FileWriter类:是OutputStreamWriter的一个子类。该类智能按照杯底字符写数据
FileWriter(File file)
          file为输出源
FileWriter(File file, boolean append)
          file为输出源,append是否追加到末尾
FileWriter(FileDescriptor fd)
          构造与某个文件描述符相关联的 FileWriter 对象。
FileWriter(String fileName)
          fileName为输出源,包含路径
FileWriter(String fileName, boolean append)
          fileName为输出源,包含路径,append是否追加到末尾


CharArrayRead类:适配器,把字符数组转换为Reader类,从字符数组中读取数据,因此数据源是一个字符数组:
CharArrayReader(char[] buf)
          从字符数组buf读取数据字符
CharArrayReader(char[] buf, int offset, int length)
          从字符数组buf读取数据字符,offset为开始读的位置,length为读取的长度
void close()
          关闭该流。
 void mark(int readAheadLimit)
          标记流中的当前位置。
 boolean markSupported()
          判断此流是否支持 mark() 操作(它一定支持)。
 int read()
          读取单个字符。 返回的是字符
 int read(char[] b, int off, int len)
          将读入的字符保存数组的中,off为保存的位置,len为每次保存的字符数。返回值为实际返回的字符数量
 boolean ready()
          判断此流是否已准备好被读取。
 void reset()
          将该流重置为最新的标记,如果从未标记过,则将其重置到开头。
 long skip(long n)
          跳过字符。

CharArrayWriter类:适配器,把字符数组转化为Writer,向内存中的字符数组中写数据。
构造函数
CharArrayWriter()
          创建一个新的 CharArrayWriter。
CharArrayWriter(int initialSize)
          创建一个具有指定初始大小的新 CharArrayWriter。
方法:
CharArrayWriter append(char c)
          将指定字符追加到此 writer。
CharArrayWriter append(CharSequence csq)
          将指定的字符序列追加到此 writer。
CharArrayWriter append(CharSequence csq, int start, int end)
          将指定字符序列的子序列追加到此 writer。
void close()
          关闭该流。
void flush()
          刷新该流的缓冲。
void reset()
          重置该缓冲区,以便再次使用它而无需丢弃已分配的缓冲区。
int size()
          返回缓冲区的当前大小。
char[] toCharArray()
          将内存中的字符数组返回,即通过这种方法返回字符

String toString()
          将将内存中的字符数组以字符串的形式返回

void write(char[] c, int off, int len)
          将字数数组c中的字符写入内存中字符数组,off为起始写的位置,len为写的字符数量
void write(int c)
          将一个字符写入内存中的字符数组
void write(String str, int off, int len)
          将字符串的某一部分写入内存中的字符数组
void writeTo(Writer out)
          将缓冲区的内容写入另一个字符流。

StringReader类:适配器,把字符串转换为Reader,从字符串中读取数据
StringReader(String s)
         参数s为指定字符串类型的数据源

void close()
          关闭该流。
void mark(int readAheadLimit)
          标记流中的当前位置。
boolean markSupported()
          告知此流是否支持 mark() 操作以及支持哪一项操作。
int read()
          每次从字符串中读取一个字符
int read(char[] cbuf, int off, int len)
          将读取的字符保存在字符数组cbuf中,off为开始保存的位置,len为每次读取的字符数。返回的实际读取的字符数量
boolean ready()
          告知是否准备读取此流。
void reset()
          将该流重置为最新的标记,如果从未标记过,则将其重置到该字符串的开头。
long skip(long ns)
          跳过流中指定数量的字符。


标准IO类:
System.in为InputStream类,标准输入流,默认的数据源为键盘。

System.out为PrintStream类,代表输出类,默认的数据汇是控制台。
Systemerr为PrintStream类,代表标准错误输出,默认的数据汇为控制台


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值