一、对于处理方式的分类
| 字节流 | 字符流 | |
| 输入流 | 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.字节字符装换
本文深入探讨Java中的字节流与字符流的使用方法,包括InputStream、OutputStream、Reader与Writer的基本API,以及常见流类的应用场景,如文件输入输出、缓冲区管理等。同时,提供解决大文件读取、乱码问题的实用技巧。
107

被折叠的 条评论
为什么被折叠?



