Java InputStream.available获取数据流字节长度大小
定义
public int available()返回
在不阻塞的情况下数据流里有多少个字节可以读取
异常IOException:I/O 错误
总结
实例
public static void main(String[] args) throws Exception { InputStream is = null; try { InputStream is = new FileInputStream("C://51gjie.txt"); System.out.println("len: " + is.available()); } catch(Exception e) { } finally { if(is != null) is.close(); } }
1. 返回可以从此输入流读取(或跳过)而不会被该输入流的方法的下一次调用阻塞的字节数的估计值。 下一个调用可能是同一线程或另一个线程。 仅读取或跳过此多个字节不会阻塞,但可能会读取或跳过较少的字节。
2. 如果这个方法用在从本地文件读取数据时,一般不会遇到问题,但如果是用于网络操作,就经常会遇到一些麻烦。比如,Socket通讯时,对方明明发来了10240个字节,但是自己的程序调用available()方法却只得到800,或者1024,甚至是0。
3. available这个方法一定要在子类中实现,如果实现了那么就可以取得大小,如果没有实现获取就一直是0。
4. 如果已经调用close()方法关闭了此输入流,调用此方法会抛出IOException异常。
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。