IO的基本知识

来源:互联网 发布:js设置input为必填 编辑:程序博客网 时间:2024/04/28 01:00

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.常用流的层次

 

 

 

 

 

 

 

原创粉丝点击