java IO(二)—— 字符输入输出流
javo. io. Reader:字符输入流
是字符输入流的最顶层的父类,定义了-些共性的成员方法,是一个抽象类
共性的成员方法:
- int read() 读取单个字符并返回。
- int read(char[] cbuf)- 次读取多个字符,将字符读入数组。
- void close() 关闭该流并释放与之关联的所有资源。
java. io. FileReader extends InputStreamReader extends Reader
FileReader:文件字符输入流
作用:把硬盘文件中的数据以字符的方式读取到内存中
构造方法:
- FileReader(Stritg fileName)
- FileReader(File file)
参数:读取文件的数据源
FileReader构造方法的作用:
1.创建一个FileReader对象
2.会把FileReader对象指向要读取的文件
demo
java. io. Writer :字符输出流
是所有字符输出流的最顶层的父类,是一个抽象类
共性的成员方法:
-
void write(int c)写入单个字符。
-
void write(char[] cbuf)写入字符数组。
-
abstract void write(charfj cbuf, int off, int len)写入字符数组的某一部分, off数组的开始索引, len写的字符个数。
-
void write(String str)写入字符串。
-
void write(String str, int off, int len) 写入字符串的某一部分, off字符串的开始索引, len写的字符个数。
-
void flush()刷新该流的缓冲。
-
void close() 关闭此流,但要先刷新它。
java. io. FileWriter extends OutputStreamwriter extends Writer
- Filewriter:文件字符输出流
- 作用:把内存中字符数据写入到文件中
Filewriter构造方法:
-
Filewriter(File file)根据给定的File 对象构造一个FileWriter 对象。
-
FileWriter(string fileName) 根据给定的文件名构造一-个Filewriter 对象。
参数:写入数据的目的地- String fileName :文件的路径
- File file:是-一个文件
构造方法的作用:
- 会创建一个FileWriter对象
- 会根据构造方法中传递的文件文件的路径,创建文件
- 会把FileWriter对象指向创建好的文件
字符输出流的使用步骤(重点):
1.创建Filelwriter对象,构造方法中绑定要写入数据的目的地
2.使用Filewriter中的方法write,把数据写入到内存缓冲区中(字符转换为字节的过程)
3.使用Filewriter中的方法flush,把内存缓冲区中的数据,刷新到文件中
4.释放资源(会先把内存缓冲区中的数据刷新到文件中)
demo
flush方法和close方法的区别
- flush :刷新缓冲区,流对象可以继续使用。
- close: 先刷新缓冲区,然后通知系统释放资源。流对象不可以再被使用了。
续写和换行
续写,追加写:使用两个参数的构造方法
Filewriter(String fileName, boolean append)
FileWriter(File file, boolean append)
参数:
String fileName,File file:写入数据的目的地
boolean append:续写开关true:不会创建新的文件覆盖源文件,可以续写; false :创建新的文件覆盖源文件
用try catch处理流中的异常
JDK7的新特性
在try的后边可以增加一个(),在括号中可以定义流对象
那么这个流对象的作用域就在try中有效
try中的代码执行完毕,会自动把流对象释放,不用写finally
格式:
try(定义流对象;定义流对象…){
可能会产出异常的代码
}catch(异常类变量变量名){
异常的处理逻辑
}
完毕,会自动把流对象释放,不用写finally
格式:
try(定义流对象;定义流对象…){
可能会产出异常的代码
}catch(异常类变量变量名){
异常的处理逻辑
}