当前位置: 首页 > 面试题库 >

Java URLConnection:如何找出Web文件的大小?

徐旻
2023-03-14
问题内容

我正在为一个学校项目工作,并且正在实现一个可用于从网络下载文件的工具(带有限制选项)。问题是,我将为其提供图形用户界面,并且我将使用JProgressBar小部件,该小部件将显示下载的当前进度。为此,我需要知道文件的大小。在下载文件之前,如何获取文件的大小。


问题答案:

任何HTTP响应都 应该 包含Content-Length标头,因此您可以查询URLConnection对象以获取此值。

//once the connection has been opened
List values = urlConnection.getHeaderFields().get("content-Length")
if (values != null && !values.isEmpty()) {

    // getHeaderFields() returns a Map with key=(String) header 
    // name, value = List of String values for that header field. 
    // just use the first value here.
    String sLength = (String) values.get(0);

    if (sLength != null) {
       //parse the length into an integer...
       ...
    }

服务器不一定总是能够返回准确的Content-Length,因此该值可能不准确,但至少在大多数情况下您会获得 一些 可用的值。

更新: 或者,现在,我更加全面地了解URLConnection
javadoc,您可以只使用getContentLength()方法。



 类似资料:
  • 问题内容: 我试图在bash中使用一些东西来显示打印而不是解释的文件中的行尾。该文件是SSIS / SQL Server的转储文件,正在被Linux机器读入以进行处理。 是否有内的任何开关,,,等? 除了看到行结束,我需要知道它是什么类型的线路末端(或)。我如何找到答案? 问题答案: 您可以使用该实用程序来指示行尾的类型。 Unix: “ DOS”: 要将“ DOS”转换为Unix: 要从Unix

  • 问题是输出文件的大小大于原始文件 编辑:-我知道的解决方案,即读写文件字节明智,但我的问题是为什么这是发生的?

  • 问题内容: 在我的Java应用程序中,我将文件重命名为String参数中提供的文件名。有一种方法 它基本上检查newName是否尚未被其他文件占用,因为我不想掩埋现有文件。 现在我想到,也许newName String不会表示有效的文件名。所以我想将此检查添加到方法中: 这显然不是正确的方法,因为在大多数情况下newFile尚不存在,因此尽管它 是 OKtoRename,但该函数返回false。

  • 我正在使用JHipster开发基于Spring Boot和AngularJS的应用程序。我的问题是如何设置上传文件的最大大小? 如果我试图上传到大文件,我会在控制台中获得以下信息: 和状态为500的服务器响应。 怎么设置?

  • 亚马逊是否提供了一种简单的方法来查看我的S3存储桶或文件夹使用了多少存储空间?这是为了我可以计算我的成本等。

  • 问题内容: 我目前正在开发一个使用HTML5的localStorage的站点。我已经阅读了有关不同浏览器大小限制的所有信息。但是,关于如何找出localStorage实例的当前大小,我还没有看到任何东西。这个问题似乎表明JavaScript没有内置的方式来显示给定变量的大小。localStorage是否具有我未见过的内存大小属性?有没有一种简单的方法可以做到这一点,而我却没有呢? 我的网站旨在允许