Java 中如何从 URL 下载文件?10 Sept 2024 | 5 分钟阅读 在 Java 中从 URL 下载文件是一项相对简单的任务,但有几种不同的方法可以实现。在本篇博文中,我们将讨论两种最常用的方法:使用 URL 和 HttpURLConnection 类,以及使用 Apache Commons IO 库。 通过 URL 下载文件是什么意思?通过 Java 代码使用 URL 下载文件允许 Java 应用程序直接将文件从远程存储库或其他本地存储下载到本地系统。此过程读取 URL 中的文件并将其写入本地文件。Java 提供了三种不同的方法来通过 URL 下载文件。 1:纯 Java 结构如果我们不使用任何外部库而使用 Java,它将文件作为输入,并逐字节读取数据。现在,如果我们从输入流中获取逐字节数据,并将字节写入文件输出流,我们就可以通过 URL 实现下载。 URLDownloadFile.java 输出 File downloaded successfully? 2:使用 Java.IO 包java.io 是传统的 Java 包,其中包含各种类。它包含一些内置类,专门用于流的读写。 我们需要导入 URLConnection、FileOutputStream、IOException、InputStream 和 OutputStream。在 main() 中,创建 OutputStream 和 InputStream 对象,以及两个用于保存 URL 链接和文件位置的字符串变量。在 try 块中,使用 getInputStream() 设置 URL 和 URLConnection。接下来的 catch 块将处理任何输入输出异常并执行 printStackTrace()。finally 块(作为程序的强制部分自动执行)将显示消息“URL 的文件已下载。” 下载文件的步骤。
让我们在 Java 程序中实现上述步骤。 URLFileDownload.java 输出 URL's File downloaded.... 3:使用 NIOJava NIO(New IO 的缩写)是另一种输入输出 Java API,也作为 Java 包提供。NIO 作为标准 Java IO 和 Java Networking API 的替代方案。在使用 Java IO 库时,流是逐字节读取数据的。但在 Java NIO 包中,数据以通道和缓冲区(channels and buffers)的形式读取。 我们需要导入 URL、Channels(它是 NIO 包的一部分)、FileOutputStream、IOException、InputStream OutputStream 和 java.io.File。现在,在 Main 类中,我们创建了 main()。在 main() 中,在 try 块内,我们创建了两个名为 fileLink 和 oppath 的 String 对象,其中定义了 URL 链接和文件位置。然后,我们为要下载的文件创建了一个输入流。然后,我们需要生成一个负责从该输入流读取数据的新通道。接下来,我们需要创建一个输出流,它将把通道对象中的文件内容写入文件。现在,我们必须从输出流获取通道并定义其内容。接下来的 catch 块将处理任何输入输出异常并执行 printStackTrace()。 PrintStackTrace.java 4:使用 Apache Commons IOApache Commons IO 是一个 Java 工具包,其中包含 org.apache.commons.io.FileUtils 类。它包含一个 copyURLToFile 方法,可用于处理 IO 操作。此方法接受两个参数 - 第一个是的作用是指向源文件的 java.net.URL 对象,第二个是指向输出文件路径的 java.io.File 对象。请注意,这两个路径都应以文件名结尾。输出路径应为本地系统上的文件位置,文件将从该位置下载。 首先,我们需要导入 apache.commons.io.FileUtils。在 Main 类中,我们需要创建 main(),然后在其中创建两个 String 变量来保存 URL 链接和文件位置。现在,使用 FileUtils.copyURLToFile() 方法使程序能够(从指定位置)使用(给定的)URL 下载文件。此方法接受我们之前创建的两个参数 fileLink 和 oppath。 DownloadFile.java 输出 File downloaded successfully! 下一个主题在 Java 方法中传递对象 |
Java 21 中引入的 switch 表达式和语句的模式匹配功能允许开发人员在 switch 语句中匹配特定模式,使代码更简洁、更易读。要使用 switch 语句中的模式匹配,我们只需使用 case 关键字后跟...
阅读9分钟
Java 以其健壮且通用的特性,提供了多种方法将文件从一个位置复制到另一个位置。无论您是处理本地文件系统还是远程服务器,Java 丰富的 API 都使文件操作成为一项简单的任务。在本综合指南中,我们将探讨各种技术...
5 分钟阅读
计算所有 1 的子矩阵是编程中一个常见的问题,它涉及到在一个给定的二进制矩阵(仅包含 0 和 1)中找到所有元素都是 1 的子矩阵的数量。这个问题广泛应用于图像处理、数据分析等领域...
14 分钟阅读
创建 Java 身体质量指数 (BMI) 计算器需要实施多种使用不同公式计算 BMI 的方法。身体质量指数 (BMI) 是一种工具,用于根据身高和体重确定个人的身体脂肪。修改后的 BMI 公式,...
阅读 4 分钟
Java.util.function 包在 Java 8 中首次发布,它包含了 DoubleConsumer 接口,用于在 Java 中进行函数式编程。它是一个接受单个 double 值参数但没有任何输出的函数的示例。为了定义其 accept()...
阅读 4 分钟
当一个块被修饰或与 static 一词相关联时,它被称为静态块。静态块被称为静态子句。静态块可用于类的静态初始化。写在静态块中的代码...
阅读 4 分钟
在数论中,没有什么比 Hardy-Ramanujan 定理更迷人的了。它展示了数字在素因子方面的分布有多么真实。Hardy 在 1917 年基于 Srinivasa Ramanujan 的观察讨论了该定理,该定理认为 ω(n) = 个数...
5 分钟阅读
?Java,一种通用且广泛使用的编程语言,是无数应用程序的基础,涵盖各种领域。然而,作为开发人员,确保我们的 Java 源代码的保护不仅仅是最佳实践,而是至关重要的必要条件,在这个网络安全威胁迫在眉睫的时代。在……
阅读 3 分钟
java.util.function 包(于 Java 8 引入)包含 ToIntBiFunction 接口,该接口用于在 Java 中实现函数式编程。它表示一个接受两个 T 和 U 类型输入并返回整数值的函数。有两种...
阅读 3 分钟
面向对象编程 (OOP) 的一个关键思想是继承,它使类能够继承其他类的特征和属性。通过使用基类和派生类,Java 中实现了继承的思想。我们将研究什么是基类...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India