Java的I/O流分为byte streams, character streams, line streams,操作这些流的类分别为fileInputStream和fileOutputStream, fileReader和fileWriter, bufferedReader和printWriter.字节流和字符流的区别是:字节流每次以8位为读取单位,而字符流每次以16位为读取单位。它们都是无缓冲的。bufferedWirter,printWriter,bufferedReader是有缓冲的,只有当缓冲区满的时候,缓冲区中的数据才会被flush,这样做的目的是,减少读取磁盘的次数。当然,也可以设置为自动flush,即只要使用了println方法,就自动flush.
Java的I/O流操作类及区别

