使用 Java 获取网络文件大小


确定互联网上文件的大小似乎有点棘手,但这是一个非常简单且容易的任务。Java 提供了一些可用于给定任务的内置功能。在本文中,我们将讨论如何建立与互联网的连接并获取给定文件的大小。

如何使用 Java 建立互联网连接

URL

现代互联网的核心是万维网。蒂姆·伯纳斯-李发明了一种定位网络上所有资源的方法,他将其命名为统一资源定位符。它提供了在互联网上唯一识别资源的功能。URL 有四个组成部分:

  • 协议

  • 主机名或 IP 地址

  • 端口号

  • 路径

Java 网络中的URL类用于通过 URL 建立连接或定位互联网上的资源。此类会抛出 MalformedURLException 异常。

语法

URL nameOfObject = new URL( “URLspecifier” );

其中,

URLspecifier 是实际的 URL 或我们可以称之为资源的链接。它必须用双引号括起来。

要访问 URL 的内容信息,我们需要使用“URL”类的内置方法“openConnection()”定义一个“URLConnection”类的对象。

URLConnection

它是一个用于访问指定资源(即互联网上的 URL)信息的类。首先,它会在检索 URL 之前检查其属性。为了检索有关指定资源大小的信息,它定义了一个名为“getContentLengthLong()”的方法。它与“URLConnection”类的对象一起使用。

检查互联网上文件大小的 Java 程序

需要遵循的步骤

  • 首先,定义一个 URL 类的对象以及给定文件的链接。

  • 使用 URL 类的对象创建一个 URLConnection 类的对象。

  • 使用“getContentLengthLong()”检索文件大小并将其存储在一个名为“fileSize”的 long 类型变量中。

  • 现在,我们将接收到的文件大小除以 1024 以获取文件以千字节为单位的大小。

  • 最后,借助 if-else 块打印结果。

示例

import java.net.*;
public class UCDemo {
   public static void main(String args[]) throws Exception {   
      try {
         // link of file   
         URL shareLink = new URL("https://tutorialspoint.com/java/pdf/java_networking.pdf");
         // making connection with the file
         URLConnection urlConn = shareLink.openConnection(); 
         // retrieving type of the file
         System.out.println("Type of the content: " + urlConn.getContentType());
         // retrieving size of the file
         long fileSize = urlConn.getContentLengthLong();
         long kb = fileSize / 1024;
         if(fileSize == -1) {
            System.out.println("Cannot determine the Size of file!!");
         } else {
            System.out.println("Size of the given file in KB: " + kb + " KB");
         }
      }
      catch(Exception exp) {
         System.out.println("Something went wrong!! Please check the file type!!");
      } 
   }
}

输出

Type of the content: application/pdf
Size of the given file in KB: 72 KB

结论

IP 地址是 32 位或 128 位无符号数字,用于唯一标识互联网上的设备。记住 IP 主机名称比记住数字地址更容易。因此,URL 以字符串的形式出现。在本文中,我们学习了 URL 和 URLConnection 类,它们有助于与万维网建立连接。这两个类都位于“java.net”包中。

更新于:2023年5月15日

465 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.