在Java中,IO流主要分为以下几种类型:
字节流:这是所有字节输入输出流的抽象基类,包括InputStream和OutputStream。字节流以字节为单位读入和写出数据,主要用于处理二进制数据。
字符流:这是所有字符输入输出流的抽象基类,包括Reader和Writer。字符流以字符为单位读入和写出数据,主要用于处理文本数据。
此外,根据功能,IO流可以分为输入流和输出流:
输入流:数据流向程序。
输出流:数据从程序流出。
为了提升读写效率,Java还提供了字节缓冲流和字符缓冲流:
字节缓冲流:包括BufferedInputStream和BufferedOutputStream,是对字节输入输出流的缓冲增强。
字符缓冲流:包括BufferedReader和BufferedWriter,是对字符输入输出流的缓冲增强。
这些缓冲流可以将数据放在缓存区内,减少磁盘I/O次数,从而提高性能。