一、对于处理方式的分类
字节流 | 字符流 | |
输入流 | InputStream | Reader |
输出流 | OutputStream | Writer |
二、字节流
1.InputStream的API
read() //从输入流中读取下一个字节。返回0-255,结尾返回-1
read(byte[]) //返回从输入流中读取的字节数,文件末尾返回-1;byte的长度0返回0
read(byte[],off,len)//读取长度<=len,off为byte中的位置byte[off],返回实际长度,结尾-1
2.OutputStream
write(int) //写入低8字节,忽略高24位
write(byte[]) //写入byte
write(byte[],off,len) //写入长度len,位置off
flush() //
3.最后不要忘了close
4.对应的子类
5常用
FileInputStream //直接对应了文件
ByteArrayInputStream //用bute[]构建了一个缓冲区
StringBufferInputStream //此类未能正确地将字符转换为字节,废弃了,用StringReader
FilterInputStream//和一些装饰流
LineNumberInputStream//废弃 LineNumberReader
PipedInputStream:管道,主要用于线程
SequenceInputStream:合并InputStream
ByteArrayOutputStream //缓冲到一个byte数组中
FileOutputStrean //将信息存到文件中
PipedOutputStream
SequenceOutputStream
三、字符流
四、注意事项
1.用完输入输出要close
2.缓冲区应该怎么用?
3.大文件读取应该怎么办?
4.乱码问题该怎么搞?
5.字节字符装换