从URL下载Java文件
时间:2020-02-23 14:36:30 来源:igfitidea点击:
今天,我们将学习如何从Java中的URL下载文件。
我们可以使用java.net.URL openStream()方法从Java程序中的URL下载文件。
我们可以使用Java NIO Channels或者Java IO InputStream从URL打开流中读取数据,然后将其保存到文件中。
从URL下载Java文件
这是来自URL示例程序的简单Java下载文件。
它显示了从Java中的URL下载文件的两种方法。
JavaDownloadFileFromURL.java
package com.theitroad.files; import java.io.BufferedInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.net.URL; import java.nio.channels.Channels; import java.nio.channels.ReadableByteChannel; public class JavaDownloadFileFromURL { public static void main(String[] args) { String url = "https://www.theitroad.local/sitemap.xml"; try { downloadUsingNIO(url, "/Users/hyman/sitemap.xml"); downloadUsingStream(url, "/Users/hyman/sitemap_stream.xml"); } catch (IOException e) { e.printStackTrace(); } } private static void downloadUsingStream(String urlStr, String file) throws IOException{ URL url = new URL(urlStr); BufferedInputStream bis = new BufferedInputStream(url.openStream()); FileOutputStream fis = new FileOutputStream(file); byte[] buffer = new byte[1024]; int count=0; while((count = bis.read(buffer,0,1024)) != -1) { fis.write(buffer, 0, count); } fis.close(); bis.close(); } private static void downloadUsingNIO(String urlStr, String file) throws IOException { URL url = new URL(urlStr); ReadableByteChannel rbc = Channels.newChannel(url.openStream()); FileOutputStream fos = new FileOutputStream(file); fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); fos.close(); rbc.close(); } }
downloadUsingStream:在这种从URL下载Java文件的方法中,我们使用URLopenStream
方法创建输入流。
然后,我们使用文件输出流从输入流中读取数据并写入文件。
downloadUsingNIO:在此从URL下载文件的方法中,我们从URL流数据创建字节通道。
然后使用文件输出流将其写入文件。