求教高手读同样的文件,读出的byte数略有差别,似乎availbale()更准确些一般读取文件大小用那个?

解决方案 »

  1.   

    length
    public long length()返回由此抽象路径名表示的文件的长度。如果此路径名表示一个目录,则返回值是不确定的。 返回:
    此抽象路径名表示的文件的长度,以字节为单位;如果文件不存在,则返回 0L。对于表示特定于系统的实体(比如设备或管道)的路径名,某些操作系统可能返回 0L。 
    抛出: 
    SecurityException - 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String) 方法拒绝对文件进行读访问
    available是表示在不阻塞的情况下,还可以读取多少个字节。而不是指这个流还有多长
      

  2.   

    楼上的大哥,我会查api的如果用InputStream in= new FileInputStream(file);
    in.available()就能取出file的大小而且比直接用length()要准,不知道我是不是有些细节没注意到大家一般用那一种方法来取文件的大小?
      

  3.   

    答:恰恰相反.
    availbale()返回的值是一个估算值.不能依赖这个值来分配空间,存放整个数据的.
    文件大小应该用length().而且返回值是long型,以对付大型文件.