问答详情
源自:3-5 Spring Bean装配之Resource

通过URL的方式获取网站Resource的length为什么是-1?

http://img.mukewang.com/56fe6a520001ec2a10640150.jpg

System.out.println(resource.getFilename());

System.out.println(resource.contentLength());


提问者:yuantongxin 2016-04-01 20:32

个回答

  • 我只是路ren
    2016-04-02 14:05:10

    1、出现这种情况是小文件的大小是在头里的长度字段有值,所以能获取到大文件的时候,长度字段没有了,而是使用了trunk的方式传输,这样就没办法直接获取到了,需要根据trunk信息进行统计。

    2、大于2G估计服务器压缩传输了,设置conn .setRequestProperty("Accept-Encoding", "identity")。

    调用了FileSystem这是java没有公开的一个类,JavaDoc API没有。其中fileSystem 是一个IFileSystem对象,IFileSySTEM是java没有公开的一个类,JavaDoc API中没有;

    3、fd是一个FileDescriptor对象,即文件描述符。说明这句代码是通过文件描述符获取文件的总大小,而并不是事先将磁盘上的文件数据全部读入流中,再获取文件总大小。