文件字节流 fileInputStream fileOutputStream
文件字符流 fileReader fileWriter
1.流的使用步骤
2.可以一次写入或读出单个字节或多个字节
3.构造方法中可以追加读和写
4.写入字节时0–127是查询ASCII表,其他值查询系统默认码表(中文系统GBK),若写的第一个字节是负数,则会和第二个字节组合成一个中文显示。utf-8编码下,一个中文字节占三个字符
5.写换行符 windows下 \r\n linux下 \n mac 下 \r
6.字符输出流的flush方法和close方法的区别:flush方法刷新缓冲区,将内存缓冲区的数据刷新到文件中,流对象可以继续使用;
close方法:先刷新缓冲区,然后通知系统释放资源,流对象不可以再使用
7.处理异常:
1.jdk1.7之前使用try…catch…finally处理流中的异常
2.jdk1.7新特性
流对象的作用域就在try中有效
try中代码执行完毕,会自动把流对象释放,不用写finally
try(定义流对象,定义流对象){
可能出现异常的代码
}catch(异常类变量名 变量名){
异常的处理逻辑
}
3.jdk1.9新特性
try前面定义流对象,try()中直接引入流对象的名称(变量名),try代码执行完成后,流对象自动释放,不用写finally
9.Properties集合
java.util.Properties extends Hashtable<k,v> implements Map<k,v>
该类表示一个持久的属性集,唯一和IO流相结合的集合
双列集合 每个键和值都是一个字符串
store()方法 将集合中的临时数据持久化到硬盘中存储
load()方法 将硬盘中保存中的文件(键值对)读取到集合中使用
操作字符串特有方法:
setProperty() 调用Hashtable中的put方法
getProperty() 等价get方法
stringPropertyNames() 等价keyset方法
10.缓冲流
字节缓冲流 BufferedInputStream BufferedOutputStream
字符缓冲流 BufferedReader BufferedWriter
基本原理:创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区的读写,减少系统IO次数,提高读写效率
字符缓冲流独有的方法:
BufferedReader :public String readLine() 一次读取一行
BufferedWriter:public void newLine() 写一行行分隔符,系统属性定义符号