import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
public class URLFileSaver implements Runnable {
private static final int BUFFER_SIZE = 4096;
private String destUrl;
private String fileName;
public URLFileSaver(String destUrl,String fileName)
{
this.destUrl = destUrl;
int i = destUrl.lastIndexOf("/");
this.fileName = fileName + destUrl.substring(i+1);
}
public void run() {
try {
saveToFile(destUrl,fileName);
System.out.println("文件:"+destUrl+"下载完成,保存为"+fileName);
} catch (IOException e) {
System.out.println("文件下载失败,信息:"+e.getMessage());
}
}
// 将网络文件保存为本地文件的方法
// @param destUrl
// @param fileName
// @throws IOException
public void saveToFile(String destUrl, String fileName) throws IOException {
FileOutputStream fos = null;
BufferedInputStream bis = null;
HttpURLConnection httpconn = null;
URL url = null;
byte[] buf = new byte[BUFFER_SIZE];
int size = 0;
// 建立链接
url = new URL(destUrl);
httpconn = (HttpURLConnection) url.openConnection();
// 连接指定的资源
httpconn.connect();
// 获取网络输入流
bis = new BufferedInputStream(httpconn.getInputStream());
// 建立文件
fos = new FileOutputStream(fileName);
System.out.println("正在获取链接[" + destUrl + "]的内容\n将其保存为文件[" + fileName
+ "]");
// 保存文件
while ((size = bis.read(buf)) != -1)
fos.write(buf, 0, size);
fos.close();
bis.close();
httpconn.disconnect();
}
public static void main(String[] args) {
Thread th = new Thread(new URLFileSaver("http://218.30.106.195:8083/MDNew/MediaRTGBBFbcd578190/liyuehong/SHE_FM_SHE_Future/05.mp3","c:/"));
th.start();
}
}
分享到:
相关推荐
在这个特定的场景中,我们利用HttpClient来从指定的URL下载文件到本地。以下是对这个主题的详细阐述: 1. **HttpClient介绍**: HttpClient是一个Java库,支持HTTP/1.1协议以及部分HTTP/2特性。它提供了一组高级...
在Java编程语言中,我们可以利用HTTP协议来实现从网上下载文件到本地的功能。这个过程涉及到网络编程、IO流处理以及文件操作等知识点。下面将详细解释如何实现这一目标。 首先,我们需要了解HTTP协议,它是互联网上...
这个项目“基于Java爬取网络图片并且保存到本地”旨在为初学者提供一个学习实践的机会,了解如何利用Java进行网页抓取和数据处理。 首先,我们需要了解Java爬虫的基础。这通常涉及以下几个关键概念: 1. **HTTP...
2. **文件I/O操作**:下载的数据需要保存到本地文件系统。Java的`java.io.File`类用于文件操作,如创建、读写和删除。`FileOutputStream`和`BufferedOutputStream`用于将网络获取的数据写入文件。如果下载的文件分布...
在Java开发中,导入Excel数据并将其保存到本地数据库是一项常见的任务,特别是在处理大量结构化数据时。这里我们将深入探讨如何使用jxl库来实现这一功能。 jxl是一个流行的Java库,专门用于读写Microsoft Excel文件...
一旦获取到图片的URL,我们可以使用`java.io`和`android.graphics`包中的类来下载并处理图片。 1. **下载图片** 使用`java.net.URL`和`java.io.InputStream`下载图片数据。创建一个`URL`对象,然后通过`open...
在Java开发中,将图片上传到服务器并返回可下载的URL是常见的功能需求,尤其在Web应用中。这里我们将详细探讨实现这一功能的关键步骤和技术点。 首先,客户端(通常是前端应用)需要通过HTTP请求将图片文件发送到...
在Java编程环境中,将URL内容转换为PDF文件是一项常见的需求,尤其在数据抓取、文档保存或自动化报告生成等场景中。"java URL转PDF文件(完美支持中文)"的主题着重于如何利用Java库来实现这一功能,并且确保中文字符...
后端服务器(如Java Servlet或Spring MVC Controller)接收到请求后,可以使用前面提到的Java文件操作API处理上传的文件,并将其保存到服务器的指定位置。 对于文件下载,HTML中可以创建一个链接,指向服务器上的...
此外,Robot类还需要包含开始搜索的入口URL和本地保存路径。 - **urlWaiting**:存储待处理的URL列表。 - **urlProcessed**:存储已处理过的URL,避免重复处理。 - **picUrlProcessed**:存储已下载的图片URL。 ...
- `Content-Disposition` 通常设置为 `attachment`,表示让浏览器将消息体作为附件下载到本地。 - `Content-Type` 通常为 `application/octet-stream`,用于表示通用的二进制数据流。对于ZIP文件,`Content-Type` 则...
总的来说,这个压缩包提供的Java源码演示了如何利用标准Java库来从互联网上下载并保存图像。对于学习网络编程和Java I/O操作的开发者来说,这是一个非常实用的示例。通过理解并实践这些代码,你可以增强自己在网络...
总结,Java的`URL`和`HttpURLConnection`类为我们提供了强大的工具,可以轻松地创建HTTP客户端程序,从指定的URL获取数据并将其保存到本地文件。通过理解这些基础知识,开发者可以构建复杂的网络应用,进行数据的...
在QT开发中,我们可以利用其丰富的库功能来实现各种网络操作,包括从HTTP或HTTPS协议的URL下载图片。这个项目提供了一个简单但实用的解决方案,它具有进度条显示功能,并且下载后的文件会保存在构建运行文件夹内。...
以下将详细介绍如何根据给定的URL利用Java实现线程来生成网页快照。 首先,我们需要了解基本的网络请求。在Java中,可以使用`java.net.URL`和`java.net.HttpURLConnection`类来发起HTTP请求。例如,我们可以创建一...
综上所述,"android webview实现自身下载文件自动保存SDCARD"主要是通过设置WebViewClient,拦截文件下载请求,然后利用DownloadManager服务将文件保存到SDCARD的过程。这个功能对于那些希望在自己的应用程序内提供...
3. **文件I/O**:下载的瓦片资源需要保存到本地,这需要用到Java的文件I/O操作,如`java.io.File`和`java.io.FileOutputStream`等。 4. **地图坐标系统转换**:Google地图使用Web Mercator投影,因此在下载瓦片时,...
总的来说,"java做的下载工具WEB版"是一个利用Java Web技术实现的下载管理应用,它简化了用户的下载流程,同时具备了一定的灵活性和可配置性。它的实现涵盖了HTTP通信、文件I/O、用户界面交互等多个Java技术领域,...
4. **保存瓦片图片**:接收到的二进制流被保存为本地文件,通常使用与Z-X-Y匹配的命名规则。 5. **错误处理和重试机制**:在下载过程中,可能会遇到网络问题,需要有适当的错误处理机制,比如重试或跳过失败的瓦片...
在这个特定的案例中,"基于java的JLoading Java版的Mp3下载工具"是一个利用Java编程语言开发的应用程序,旨在帮助用户方便地下载MP3音乐文件。这个工具可能包含了自定义的加载机制,即JLoading,可能是为了提供更...