java I/O中有两种流,一种面向字节(byte-oriented )的流,一种面向字符(char-oriented, Unicode-based )的流,前者由InputStream 和 OutputStream 领衔,后者由
Reader 和 Writer 领衔,对于I/O操作只能按照这两种流中的一种方式操作。用这两种流来操作是按顺序操作的,并且这两种方式可以通过代理来转换,用InputStreamReader
可以将InputStream转换成Reader,用OutputStreamWriter可以将OutputStream转换成Writer。
RandomAccessFile是另外一个分支,用它可以不按顺序操作文件。
nio 是1.4之后提出的,操作I/O性能更优。从FileInputStream 和 FileOutputStream取得FileChannel连接文件,然后通过ByteBuffer向文件中读或写数据。