`
jie66989
  • 浏览: 254445 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

使用URLConnection下载文件或图片并保存到本地

    博客分类:
  • java
 
阅读更多
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;

/**
* 使用URLConnection下载文件或图片并保存到本地。
*/
public class URLConnectionDownloader {
public static void main(String[] args) throws Exception {
String url = "http://mt1.google.cn/vt/v=w2.114&hl=zh-CN&gl=cn&x=1&y=1&z=1";
// String url = "http://www.google.cn/intl/zh-CN/images/logo_cn.gif";
String fileDir = "d:\\a\\";
String fileName = "abc.jpg";

makeDir(fileDir);
download(url, fileDir+fileName);

System.out.println("下载图片完毕!");
}

/**
* 下载文件到本地
*
* @param urlString
*            被下载的文件地址
* @param filename
*            本地文件名
* @throws Exception
*             各种异常
*/
public static void download(String urlString, String filename)
throws Exception {
// 构造URL
URL url = new URL(urlString);
// 打开连接
URLConnection con = url.openConnection();

// 设置Java服务器代理连接,要不然报错403
// 浏览器可以访问此url图片并显示,但用Java程序就不行报错Server returned HTTP response code:403 for URL
// 具体原因:服务器的安全设置不接受Java程序作为客户端访问(被屏蔽),解决办法是设置客户端的User Agent
con.setRequestProperty("User-Agent", "Mozilla/4.0(compatible;MSIE 5.0;Windows NT;DigExt)");

// 输入流
InputStream is = con.getInputStream();

// 1K的数据缓冲
byte[] bs = new byte[1024];
// 读取到的数据长度
int len;
// 输出的文件流
OutputStream os = new FileOutputStream(filename);
// 开始读取
while ((len = is.read(bs)) != -1) {
os.write(bs, 0, len);
}
// 完毕,关闭所有链接
os.close();
is.close();
}

private static void makeDir(String fileFolder) {
File file = new File(fileFolder);
if (!file.exists() && !file.isDirectory())
file.mkdir();
}
}
分享到:
评论

相关推荐

    使用urlconnection下载文件或图片并保存到本地

    * 使用URLConnection下载文件或图片并保存到本地。 * * @author 老紫竹(laozizhu.com) */ public class URLConnectionDownloader { public static void main(String[] args) throws Exception { ...

    URLConnection实现图片下载

    - `connectionDidFinishLoading:`:当下载完成时,这个方法会被调用,此时可以合并所有接收到的数据并保存为文件。 ```objc #pragma mark - NSURLConnectionDataDelegate methods - (void)connection:...

    Java多个文件根据URL下载后打包zip导出.zip

    2. **文件I/O操作**:下载的数据需要保存到本地文件系统。Java的`java.io.File`类用于文件操作,如创建、读写和删除。`FileOutputStream`和`BufferedOutputStream`用于将网络获取的数据写入文件。如果下载的文件分布...

    Android 使用URLConnection下载音频文件的方法

    在这个场景中,我们将使用`URLConnection`来下载音频文件,并将其保存到本地文件系统。 首先,创建一个名为 `DownloadStreamThread` 的子类,继承自 `Thread`。这个类的主要任务是在其 `run()` 方法中执行下载操作...

    Java文件下载的几种方式

    网络文件下载涉及从网络资源读取文件并保存到本地。以下是一个简单的网络文件下载示例: ```java public void downloadNet(HttpServletResponse response) throws MalformedURLException { int bytesum = 0; int ...

    java下载文件到指定路径(不打开窗口)

    本文档主要介绍如何使用Java编程语言实现从网络上下载文件并将其保存至本地指定路径的功能,且在执行过程中不会弹出任何用户界面窗口。这种方法非常适合后台服务或自动化脚本场景。 #### 核心知识点详解 1. **URL...

    java将网页保存成mht格式文件

    因此,对于HTML中的每个外部资源(如图片、CSS或JavaScript),你需要下载并将其内容保存到本地,同时更新HTML中的链接指向这些本地资源。 4. **生成MHT文件**:最后,你需要构造MHT文件的头部信息,包括MIME类型...

    详解Java两种方式简单实现:爬取网页并且保存

    获取到输入流后,将其转换为字符串,最后将字符串保存到本地文件。 接下来是使用`HttpClient`的实现,它是Apache HTTP组件的一部分,提供了更高级别的HTTP客户端功能。以下是一个基本的使用示例: ```java import ...

    JSP实现文件上传和下载

    - 获取上传文件,并将其保存到服务器的某个位置。 ```java import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload....

    java下载文件各类型类

    在下载文件时,我们通常使用 `InputStream` 从服务器读取数据,然后通过 `OutputStream` 将数据写入本地文件。`BufferedInputStream` 和 `BufferedOutputStream` 可以提高读写效率,减少系统调用次数。同时,`...

    android 下载文件到SD卡

    本教程主要介绍如何在Android应用中实现网络文件的下载并保存到SD卡。 1. **Android权限设置** 在AndroidManifest.xml文件中,你需要添加写入外部存储的权限: ```xml ``` 如果你的应用目标API等级高于23,还...

    通过http协议的url下载文件

    - **功能**:此方法接收三个参数,分别为图片的URL、保存到本地的文件名以及保存路径,主要功能是从网络下载图片并保存到指定路径。 - **关键点**: - 使用`getImageFromNetByUrl`方法获取图片数据。 - 检查返回的...

    安卓异步下载到本地Sd卡

    本文将深入探讨如何在Android中实现异步下载并将文件保存到本地SD卡。 首先,了解Android的异步处理模型是至关重要的。Android推荐使用AsyncTask作为轻量级的异步处理解决方案,尤其适用于执行短时任务,如网络请求...

    java文件_文件下载_

    创建`File`对象后,可以使用它来初始化`FileOutputStream`,从而将网络下载的数据保存到本地文件。 5. **HTTP协议**: 大多数情况下,文件下载涉及到HTTP或HTTPS协议。Java的`java.net.HttpURLConnection`类提供了...

    用applet实现自动从服务器上下载文件

    本主题关注的是如何使用Applet来实现一个自动化文件下载功能,即从服务器上下载文件到客户端,而且这个过程无需用户手动操作弹出的保存对话框。 首先,我们需要了解Applet的基本概念。Applet是Java语言编写的一种...

    windows下批量下载远程文件.zip

    要实现批量下载,通常会使用到HTTP客户端库,如Apache HttpClient或Java的URL和URLConnection类。用户需要提供一个包含所有下载链接的文件(例如,一个文本文件,每行一个URL),然后运行工具,指定这个文件和目标...

    二进制图片的下载

    在给定的压缩包`downLoadImage`中,可能包含了一个示例程序,演示了上述过程,包括如何从网络下载二进制图片数据并保存到本地。通过分析和学习这个示例,开发者可以更好地理解和掌握Java中处理二进制图片的方法。 ...

    ndroid 文件的下载

    从提供的代码片段来看,这是一个简单的文件下载方法,它从指定的URL下载文件并将其保存到本地存储,如SD卡。下面我们将深入探讨这个过程。 首先,我们需要理解下载文件的基本步骤: 1. **创建URL对象**:`URL Url ...

    java下载图片

    这个场景涉及到从互联网获取图片资源,并将其保存到用户的本地系统。标题"java下载图片"和描述中提到的方法,是通过网络地址抓取图片,然后在服务器上临时存储,最后通过网页中的超链接(a标签)供客户端下载。 ...

    java实现文件下载

    这个方法的目的是从指定的URL下载文件并保存到本地磁盘。 1. **创建URL对象**:通过`new URL(imgUrl)`,我们创建了一个URL对象,它代表了文件在网络上的位置。如果URL无效或无法解析,这段代码会抛出`...

Global site tag (gtag.js) - Google Analytics