处理字节数据:字节流以字节为单位处理数据,适用于处理二进制文件(如图像、音频、视频文件)或以字节为基本单位的文本文件。
底层 I/O 操作:字节流通常用于执行底层I/O操作,因为它们可以直接读取和写入文件的字节数据。
InputStream 和 OutputStream:在Java中,字节流有两个主要的抽象类:InputStream 用于读取字节数据,OutputStream 用于写入字节数据。
不适合字符数据:虽然可以用字节流来处理字符数据,但它们不够方便,因为它们不会处理字符编码,可能会导致字符数据在不同编码下的错误解释。
处理字符数据:字符流以字符为单位处理数据,适用于处理文本文件,如.txt文件。
字符编码:字符流在读取和写入数据时会考虑字符编码,以确保正确地处理不同编码的文本数据。
Reader 和 Writer:在Java中,字符流有两个主要的抽象类:Reader 用于读取字符数据,Writer 用于写入字符数据。
适合文本处理:字符流更适合于文本文件的读取和写入,因为它们能够处理字符编码、字符集等字符相关的问题。
文本文件
,特别是需要考虑字符编码和字符集的情况下,建议使用字符流(Reader和Writer)。二进制文件
或以字节为单位的数据,使用字节流(InputStream和OutputStream)更合适。InputStream// :这个抽象类是字节输`入`流的所有类的超类
OutputStream// :这个抽象类是字节输`出`流的所有类的超类
// 子类名特点:子类名称都是以其父亲名作为子类名的后缀
FileOutputStream// :文件输出流用于将数据写入File
编码:byte[] getBytes()
解码:String(byte[] bytes)
字符缓冲流的特有功能
键盘录入类: new Scanner(System.in)