以字符形式传输数据,其余与字节流类似java
Reader是字符输入流的最顶层父类,抽象类web
方法:数组
int read();//读取单个字符并返回 int read(cahr[] cbuf);//一次读取多个字符,将字符读入数组
FileReader类继承InputStream继承Reader类svg
文件字符输入流spa
FileReader(String Filename); FileReader(File file);
参数指针
读取文件的数据源code
做用xml
使用步骤对象
全部字符输出流的最顶层父类,抽象类继承
方法
abstract void close() 关闭此流,但要先刷新它。 abstract void flush() 刷新该流的缓冲。 void write(char[] cbuf) 写入字符数组。 abstract void write(char[] cbuf, int off, int len) 写入字符数组的某一部分。 void write(int c) 写入单个字符。 void write(String str) 写入字符串。 void write(String str, int off, int len) 写入字符串的某一部分。
FileWriter继承OutputStream继承Write
文件字符输出流
做用:把内存中的字符数据写入文件
构造
FileWriter(File file) //根据给定的 File 对象构造一个 FileWriter 对象。 FileWriter(String fileName) //根据给定的文件名构造一个 FileWriter 对象。
参数
写入数据的目的地
构造的做用
使用步骤
flush和close的区别
正常使用try/catch处理须要在外面声明在try里面新建对象
FileWriter fw = null; try{ 代码 }catch(){ }finalle{ if(fw!=null){ try{ fw.close(); }catch(){ //处理 } } }
若是一开始建立对象失败,finally会空指针异常,因此加if判断
由于close有异常,因此要再次try/catch
在jdk7中,能够在try后面加一个(),里面定义流对象,这个流对象的做用域是try,执行完毕会自动释放,不用finally中写close
try(流对象){ 语句 }catch(异常){ 处理 }