下面4个类都是从FilterInputStream派生来的,具体说明如下。
    ①BufferedInputStream  

1 public BufferedInputStream(InputStream in); //
2 public BufferedInputStream(InputStream in,int size);//
3 public int available(); //
4 public void mark(int readlimit); //
5 public boolean markSupported(); //
6 public int read(); 
7 public int read(byte b[],int off,int len); 
8 public void reset(); //
9 public long skip(long n);//


    ②LineNumberInputStream    这个类用来建立带有行计数功能的过滤输入流,还提供一系列与读操作有关的功能。


1 public LineNumberInputStream(InputStream in); //
2 public int available(); //
3 public int getLineNumber(); //
4 public void mark(int readlimit); //
5 public int read(); 
6 public int read(byte b[],int off,int len); 
7 public void reset(); //
8 public void setLineNumber(int lineNumbr);//将当前行号设置为指定值 
9 public long skip(long n);//


    ③PushbackInputStream

    这个类用来建立一种特殊的过滤流,它提供一种特殊的方法,即可以把已经读取的一 个字节“推回”到输入流中。用户编写的程序一般很少有这种需求,但是,在编译程序中常常 需要这种操作。因为在编译程序词法分析时,通常需要多读入一个字节以确定词性,然后, 又必须将此多读的字节退回去。所以,对于设计编译程序的计算机系统设计人员来讲,这个子类无疑为其提供极大方便。


1 public PushbackInputStream(InputStream in); 
2 public int available(); 
3 public boolean markSupported(); 
4 pubhc int read(); 
5 public int read(byte b[],int off,int len); 
6 public void unread(int ch);


    上述方法中,第1个是构造方法;第2~5个方法和其它子类的相应方法功能相同;第 6个方法unread(int ch)的功能是将刚刚读取的一个字节退回输入流。

    ④DataInputStream

    用这个类建立的过滤流提供一些基于多字节的读取方法,从而可以读取基本类型的数 据,如布尔量、整型数、浮点数等。使用这些方法的原则是必须预先知道数据类型,这样, 才可调用相应的方法来读取 

1 public DataInputStream(InputStream in); 
2 public final int read(byte b[])throws IOException; 
3 public final int read(byte b[],int off,int len)throws IOException; 
4 public final void readFully(byte b[])throws IOException;//读取输入流中的数据,直到装满整个数组 
5 public final void readFully(byte b[],int off,int len)throws IOException; //装
6 public final int skipBytes(int n)throws IOException; 
7 public final boolean readBoolean()throws IOException; 
8 public final byte readByte()throws IOException; 
9 public final int readUnsignedByte()throws IOException; 
10 public final short readShort()throws IOException; 
11 public final int readUnsignedShort()throws IOException;//读取16位短整型数 
12 public final char readChar()throws IOException; 
13 public final int readInt()throws IOException; 
14 public final long readLong()throws IOException; 
15 public final loat readFloat()throws IOException; 
16 public final double readDouble()throws IOException; 
17 public final String readLine()throws IOException; 
18 public final String readUTF()throws IOException;//