IO流是用于读写数据的输入/输出流。IO流是Java中对输入和输出操作的抽象,将所有类型的输入和输出数据抽象为流的形式,可以方便地进行数据的读取和写入。
字节流(InputStream和OutputStream):字节流用于读写字节数据,可以处理任何类型的数据,包括文本、图片、音频等。常用的字节流有FileInputStream、FileOutputStream、ByteArrayInputStream、ByteArrayOutputStream等。
字符流(Reader和Writer):字符流用于读写字符数据,可以方便地处理文本数据,避免了字符集转换的麻烦。常用的字符流有FileReader、FileWriter、StringReader、StringWriter等。
此外,还可以按照数据的读写方向和数据来源分为输入流和输出流。输入流用于从数据源中读取数据,输出流用于向数据源中写入数据。
输入流(InputStream和Reader):输入流用于读取数据,从文件、网络、内存等数据源中读取数据。
输出流(OutputStream和Writer):输出流用于写入数据,将数据写入文件、网络、内存等数据源。
根据读取和写入数据的单位和方式,还可以分为缓冲流和非缓冲流。
缓冲流(BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter):缓冲流可以提高IO性能,通过内部的缓冲区减少访问底层IO的次数。
非缓冲流(InputStream、OutputStream、Reader、Writer):非缓冲流直接读取或写入数据,没有缓冲区的概念,每次访问底层IO。
在使用IO流时,需要根据实际需求选择不同的流类型,避免在处理数据时出现错误或性能问题。