上面在对构造函数做了一个总结之后,现在再来看看各个IO流的方法:

1.输入流的方法:

   输入流顾名思义就是向应用程序中写入数据的流,既然是写入数据,最重要的方法当然就是read()了.

read方法不管是哪个类的一般都有两个调用方法:

   int read()    ---------------------------------这个方法没有参数,如果是字节流中的(如:InputStream)就每次读一  个byte,如果是字符流中的(如:CharArrayReader),就每次读一个字符.

   int read(byte[]  b,int off,int len)--------这个方法有3个参数,就是从这个已经连接到某个目标设备(也就是应用程序要从其中取处数据的设备)的输入流中从off开始读len个byte到b[]中.

显然,以上两个方法是字节流类中的方法.用这两种方法来读数据的话是很麻烦的,第1个的缺陷在于它没次只读一个,第2个缺陷在与如果不知道要读多少.当然Java的设计者们不会袖手旁观,在包装类中就有很多的其他方法.比如要每次读一行数据,就可以用BufferedReader中的String readLine()方法.

2.输出流的方法:

          输出流的意思不用多解释,其最重要的方法肯定是write.

        void write(byte []  b)-----------------------向输入流中写入b.length个byte

   void write(byte[]  b,int off,int len)-------向输入流中写入b[].

   void write(int b)----------------------------向输入流中写入int b的Asc||码.

好了,把输入流和输出流的一般的方法讲完了.现在说下自己对于输入输出流的想法:

输入流一旦通过构造函数传入一个要取数据的目标后,其流中便有了数据,所以它们的read 方法中一旦有参数,则是讲流中的信息写到这个参数中.没有参数的话将返回一个int性数据.

而输出流,在构造函数建立是是将输出的对象传递给函数,流中并没有数据,所以write方法都有参数,这个参数便是要写入目标的数据.