输入流:java
ObjectInputStream:从文件中读取对象数组
FileInputStream:从文件中输入(读)字节spa
BufferedInputStream:底层有缓冲数组,在不定义数组的状况下,提升输入(读)效率对象
输出流:blog
ObjectOutStream:接口
经一个对象写入文件资源
FileOutputStream:字符串
将数据输出(写)文件it
BufferedOutputStream:io
底层有缓冲数组,再不定义数组状况下,提升输出(写)效率
输入流:
FileReader:
输入(读)文本文件的数据
InputStreamReader:
是从字节流到字符流的桥梁:它读取字节,并使用指定的charset将其解码为字符.它使用的字符集能够有名
称指定,也能够被明确指定,或者使用平台的默认字符集
输出流:
FileWriter:
将数据输出(写)到文本文件
BufferedWriter:
底层有缓冲数组,再不定义数组的状况下,提升写入效率.同时有特有newLine()方法输出跨平台换行
OutputStreaWriter:
是从字符流到字节流的桥梁:使用指定的charset将其解码为字节,它使用的字符集能够是由名称指定,
也能够被明确指定,或者能够接受平台默认的字符集
FileInputStream,BufferedInputStream:
int read():读取一个字节
int read(byte[]b):读取一个字节数组
void close:释放文件(关流)
FileOutputStream、BufferedOutputStream:
void write(int b):写入一个字节
void write(byte[]b):写入一个字节数组
void write(byte[]b,int off(开始位置),int len(个数)):写入一个字节数组,从off开始,写入len个
void close:释放文件(关流)
ObjectInputStream:
Object readObject():读取一个对象
void close:释放文件(关流)
ObjectOutputStream:
void writeObject(Object obj):写入一个对象
void close:释放文件(关流)
FileReader、BufferedReader、InputStreamReader:
int read():一次读取一个字符
int read(char[]char):一次读取一个字符数组
BufferedReader特有方法:
String readLine():读取一整行
FileWriter、BufferedWriter、OutputStreamWriter:
void write():写入一个字符
void write(char[]char):写入一个字符数组
void write(char[]char,int off(开始位置),int len(个数)):写入一个数组的一部分,开始位置off,写入个数len
void write(String str):写一个字符串
void write(String str,off(开始位置),len(个数)):写一个字符串一部分,开始位置off,写入个数len
void flush():刷新流
void close():释放文件
BufferedWriter特有方法:
void newLine:跨平台通用换行
Properties集合与Io流集合的方法:
void load(Reaner reader):将字符输入流中的数据加载到Properties对象中
void store(Writer writer,String comments):将Properties集合中的数据存入字符输出流
flush():
刷新流,以后还能够继续写数据
close():
关闭流,释放资源,可是关闭以前会先写出数据.一旦关闭,就不能再写数据了
关流操做应定要放在try-catch-finally中的finally中:
被finally控制的语句必定会被执行,无论有没有异常,也无论异常有没有被捕获
即便finally中包含continue,break,return,try块结束后,finally块也依旧会执行
使用字节输出流注意事项:
若是文件不存在就建立
写整数时,实际写出的是整数对应码表的字母
使用完必须释放资源
表示文件的路径名称必须存在
使用字符输出(写出)流注意事项:
建立字符输出流对象时若是文件不存在就建立,存在就清空
写数据时:
写int就是写的ASCLL码表中对应的字节
写字符串就是将字符串原样输出
必须释放资源
使用字符流(输入)读取数据注意事项:
文件必需要存在
必须释放资源
对象操做流注意事项:
若是想要这个类能被序列化,那么这个类必须实现一个接口Serializable
Serializable是一个标记接口,实现给接口不须要重写任何方法
静态成员不加transient关键字都会被序列化
serialVersionUID 指定序列号,能够避免javabean修改,形成序列号改变运行时候出错
数据读取末尾的输出标记:
字符,字节读取到文件结尾会返回-1
读取一整行到文件末尾会返回null
读取对象到末尾会报EOFException
File[]listFiles()注意点:
File指向不存在的,返回null
存在的是文件:返回null
存在的是文件夹正常输出,若是是空文件夹,返回长度为0的File数组
权限问题没有访问权限,返回null
注意:返回为null的状况,能够有效避免遍历返回数组时候出现运行时异常