IO字符流
Posted xiaozhu1017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IO字符流相关的知识,希望对你有一定的参考价值。
1、IO字符流
(1)字符输入流Reader:字符输入流类的超类,共性的成员方法:
1》int read();读取单个字符并返回;
2》int read(char[] c);一次读取多个字符,将字符读入数组;
3》void close();关闭该流,并释放与之关联的所有资源;
(2)文件字符输入流FileReader:继承Reader类,作用:把硬盘文件中的数据以字符的方式读取到内存中;
构造方法:1》FileReader(String fileName);
2》FileReader(File file);
构造方法的作用:1>创建一个FileReader对象;
2>把FileReader对象指向要读取的文件;
(3)读取时将字符数组转成字符串:
使用String类的构造方法:1》new String(char[] c);将字符数组转换为字符串;
2》new String(char[] c, int offset, int count);把字符数组的一部分转换为字符串,offset为数组的开始索引;count为转换的字符个数;
(4)字符输出流Writer:字符输出流的超类,抽象类,定义的共性成员方法:
1》void write(int c);写入单个字符;
2》void write(char[] c);写入字符数组;
3》abstract void write(char[] c, int off, int len);写入字符数组的一部分,off为数组的开始索引,len为字符的个数;
4》void write(String str);写入字符串;
5》void write(String str, int off, int len);写入字符串的一部分;
6》void flush();刷新该流的缓冲;
7》void close();关闭该流,但要先刷新它;
(5)FileWriter文件字符输出流:把内存中的字符写入到文件中;
构造方法:1》FileWriter(File file);
2》FileWriter(String fileName);
构造方法的作用:1>创建一个FileWriter对象;
2>根据构造方法中传递的文件路径,创建文件;
3>把FileWriter对象指向创建好的文件;
(6)字符输出流的使用步骤:
1》创建FileWriter对象,构造方法中绑定要写入数据的目的地;
2》使用FileWriter中的write方法,把数据写入到内存缓冲区中,(字符转换成字节的过程);
3》使用FileWriter中的flush方法,把内存缓冲区中的数据,刷新到文件中;
4》释放资源,会先把内存缓冲区中的数据刷新到文件中;
(7)Flush方法和close方法的区别:flush:刷新缓冲区,流对象可以继续使用;
close:先刷新缓冲区,然后通知系统释放资源,流对象不可以再被使用了;
(8)字符输出流的续写和换行,与字节输出流的方法一样,续写:使用两个参数的构造方法:
1》FileWriter(File file, boolean append);
2》FileWriter(String fileName, boolean append);boolean append:续写的开关,为true时,续写,为false时,创建新的文件覆盖原文件;
换行:windows: ;linux:/n;mac:/r;
(9)JDK7在处理流对象异常的新用法:在try的后面可以增加一个(),在括号中定义流对象,那么这个流对象的作用域就在try中,try中的代码执行完毕,会自动把流对象释放,不用写finally;JDK9的新特性,在try的前面定义流对象,在try后面的括号中可以引入流对象的名称(变量名,如果有多个对象,对象之间用分号隔开),在try代码执行完毕之后,流对象也可以释放掉,不用写finally;
以上是关于IO字符流的主要内容,如果未能解决你的问题,请参考以下文章
IO流26 - 字符流 - 使用字符缓冲区流对象复制文本文件