Java的I/O建立于流(Stream)之上。输入流读取数据;输出流写入数据。所有的输出流都有相同的基本方法来写入数据,所有输入流也使用相同的基本方法来读取数据。在创建流之后,你通常可以忽略在读写时的具体细节。
过滤器(filer)流可以链接到输入流或输出流上。过滤器可以在读写时修改数据(例如,通过加密或压缩)或者只是提供额外的方法,将读写的数据转换为其他格式。
阅读器(reader)和书写器(writer)可以链接到输入流和输出流上,允许读写文本(即字符)而不是字节。只要正确地使用,阅读器和书写器可以处理很多字符编码,包括多字节字符集。