1.流stream
java中的流可以想象成流水管道,stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。
在Java的IO中,所有的stream按流的种类分为字节流和字符流,按输入输出分为输入流和输出流:
按流的种类分:
1.字节流
表示以字节为单位从stream中读取或往stream中写入信息,即io包中的inputstream类和outputstream类的派生类。
通常用来读取二进制数据,如图象和声音。
2.字符流
以Unicode字符为基础的stream,表示以Unicode字符为单位从stream中读取或往stream中写入信息。
区别:
1.Reader和Writer要解决的,最主要的问题就是国际化。原先的I/O类库只支持8位的字节流,因此不可能很好地处理16位的
Unicode字符流。Unicode是国际化的字符集(更何况Java内置的char就是16位的Unicode字符),这样加了Reader和Writer之后,
所有的I/O就都支持Unicode了。此外新类库的性能也比旧的好。
2.但是,Read和Write并不是取代InputStream和OutputStream,有时,你还必须同时使用"基于byte的类"和"基于字符的类"。
为此,它还提供了两个"适配器(adapter)"类。InputStreamReader负责将InputStream转化成Reader,
而OutputStreamWriter则将OutputStream转化成Writer。
按输入输出分:
输入流和输出流,两种的划分标准是针对程序而言的,相对程序而言是输入还是输出.
2.常用流的层次