IO
-
概述
(1)如果对于File对象来说,输入输出流只能针对文件,不能针对目录
(2)IO操作不仅仅是针对文件,还可以从网络中输入输出
(3)输入输出的参照物是当前程序 -
IO的分类
(1)按方向
输入流(InputStream):将数据从某个源流向程序中
输出流(OutputStream):将数据从程序往外发送到某个目的地
(2)按操作数据的单位
字节流:适用于任何类型的文件,但如果是纯文本文件用字符流更快
字符流:只能用于读/写纯文本数据(内容全部是字符),纯文本文件:.txt,.html,.xml,.properties等是纯文本文件
(3)按功能角色
节点流:和某个文件关联,如文件流…
处理流:在节点流的基础上加其它的处理功能的,例如:缓冲流,序列化,反序列化… -
IO流有四大抽象的父类/基类/超类
(1)InputStream:字节输入流
(2)OutputStream:字节输出流
(3)Reader:字符输入流
(4)Writer:字符输出流
Reader系列:
(1)int read():读取一个字符,返回该字符的Unicode编码
(2)int read(char[] c):读取多个字符,读取的字符放到c数组中,从c的[0]开始存储,最多读取c.length个,返回实际本次读取的字符个数
(3)int read(char[] c,int off,int len):读取多个字符,读取的字符放到c数组中,从c的[off]开始存储,最多读取len个 ,返回实际本次读取的字符个数
如果流中没数据可读,以上方法返回-1
Writer系列:
(1)void write (char c):写单个字符
(2)void write(char[] c):把单个字符数组的内容写出去
(3)void write(char[] c,int off,int len):从c[off]开始,把len个字符写出去
(4)void write(String str):把str的内容写出去
(5)void write(String str,int off,int len):把str从[off]开始将len个字符写出去
(6)void close():关闭
(7)void flush():刷新
I