java学习笔记(32)IO字符流

3二、IO字符流


一、概述

以字符形式传输数据,其余与字节流类似java

二、输入流Reader

Reader是字符输入流的最顶层父类,抽象类web

方法:数组

int read();//读取单个字符并返回
int read(cahr[] cbuf);//一次读取多个字符,将字符读入数组

2.一、经常使用子类

FileReader类继承InputStream继承Reader类svg

文件字符输入流spa

构造

FileReader(String Filename);
FileReader(File file);

参数指针

读取文件的数据源code

做用xml

  1. 建立一个FileReader对象
  2. 会把FileReader对象指向要读取的文件

使用步骤对象

  1. 建立Filereader对象,构造方法中绑定文件
  2. 使用Read方法读取文件
  3. 释放资源

三、输出流Writer

全部字符输出流的最顶层父类,抽象类继承

方法

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)
 写入字符串的某一部分。

3.一、经常使用子类

FileWriter继承OutputStream继承Write

文件字符输出流

做用:把内存中的字符数据写入文件

构造

FileWriter(File file)
//根据给定的 File 对象构造一个 FileWriter 对象。
FileWriter(String fileName)
//根据给定的文件名构造一个 FileWriter 对象。

参数

写入数据的目的地

构造的做用

  1. 回建立一个FileWriter对象
  2. 会根据构造传递的文件/路径,建立文件
  3. 会把FileWriter对象指向建立好的文件

使用步骤

  1. 建立对象,构造中传递目的地
  2. 使用write方法,把数据写入内存缓冲区(字符转字节)
  3. 使用flush方法,把内存缓冲区的数据刷新到文件中
  4. 释放资源

flush和close的区别

  1. flush刷新数据后还能够继续使用流对象
  2. close不可再次使用

四、使用try/catch处理流对象异常

正常使用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(异常){
	处理
}