available
public int available()throws IOException返回此输入流方法的下一个调用方可以不受阻塞地从此输入流读取(或跳过)的字节数。下一个调用方可能是同一个线程,也可能是另一个线程。 //类 InputStream 的 available 方法总是返回 0。//=====》?? 此方法应该由子类重写。 返回:
可以不受阻塞地从此输入流读取的字节数。 
抛出: 
IOException - 如果发生 I/O 错误。
类 InputStream 的 available 方法总是返回 0//???
//======================
总是返回 0? 是什么意思啊? 
available 方法不就是返回可用的字节个数吗?

解决方案 »

  1.   

    InputStream 本身只是一个抽象类,不能直接实例化,它的 available() 并没有实际的意义,所谓“总是返回 0”是指 JDK 的源代码就是这么写的。实际使用的输入流对象都是 InputStream 的子类,子类应该根据自己的实际情况改写 available()。其实我觉得如果 Sun 把 InputStream.available() 定义成 abstract 就不会有这个误会了。