import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpDownloadFile {
public static void main(String[] args) {
String sURL = "http://u1-1.uutxt.com:9009/33/33311/33311_TXT_1257909348.rar";
int nStartPos = 0;
int nRead = 0;
String sName = "liumanggaoshou.rar";
String sPath = "d:\\temp";
try {
URL url = new URL(sURL);
// 打开连接
HttpURLConnection httpConnection = (HttpURLConnection) url
.openConnection();
// 获得文件长度
long nEndPos = getFileSize(sURL);
RandomAccessFile oSavedFile = new RandomAccessFile(sPath + "\\"
+ sName, "rw");
httpConnection
.setRequestProperty("User-Agent", "Internet Explorer");
String sProperty = "bytes=" + nStartPos + "-";
// 告诉服务器book.rar这个文件从nStartPos字节开始传
httpConnection.setRequestProperty("RANGE", sProperty);
System.out.println(sProperty);
InputStream input = httpConnection.getInputStream();
byte[] b = new byte[1024];
// 读取网络文件,写入指定的文件中
while ((nRead = input.read(b, 0, 1024)) > 0 && nStartPos < nEndPos) {
oSavedFile.write(b, 0, nRead);
nStartPos += nRead;
}
httpConnection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
// 获得文件长度
public static long getFileSize(String sURL) {
int nFileLength = -1;
try {
URL url = new URL(sURL);
HttpURLConnection httpConnection = (HttpURLConnection) url
.openConnection();
httpConnection
.setRequestProperty("User-Agent", "Internet Explorer");
int responseCode = httpConnection.getResponseCode();
if (responseCode >= 400) {
System.err.println("Error Code : " + responseCode);
return -2; // -2 represent access is error
}
String sHeader;
for (int i = 1;; i++) {
sHeader = httpConnection.getHeaderFieldKey(i);
if (sHeader != null) {
if (sHeader.equals("Content-Length")) {
nFileLength = Integer.parseInt(httpConnection
.getHeaderField(sHeader));
break;
}
} else
break;
}
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(nFileLength);
return nFileLength;
}
}
分享到:
相关推荐
linux平台下 C++语言实现HTTP协议下载文件
c++ 实现,在 linux 平台测试通过,windows 上原理是一样的,下载上传大文件没有问题,
使用HTTP协议将文件下载到Windows的下载文件临时目录的程序源代码(84KB)
java 通过http协议的url下载文件
这是一个简单的小程序!可以实现用http协议将Web上的文件下载到本机的Windows文件夹!
采用C语言并根据HTTP协议实现HTTP文件的下载功能,有较高的实现效率,占用资源低,可作为一个单独的功能移植到手机上,提供一种相对简单的文件下载机制。
Qt 中编写基于 HTTP 协议的程序是十分简单的,只有十几行代码。 不过,一般我们下载文件都想要看到下载进度。它可以下载任意的文件,并且显示下载进度。
QHttp协议下载网络文件、图片等,并自动保存本地文件夹。
代码实现的是在http协议下的实现,在Console下的代码更容易让你找到解决文件下载的思路
LoadRunner测试HTTP协议下载文件,内有注释,已经过长时间测试。
PB下载HTTP文件,C/S开发工具Powerbuilder如何下载HTTP文件。
Android中用到的基于Http协议的文件下载功能,支持多线程下载和断点续传. 功能说明:http://blog.csdn.net/ncepudmx/article/details/39118035
计算机软件-商业源码-使用HTTP协议将文件下载到Window.zip
主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下
STM32+LWIP+OS http下载文件C语言实现,可以实现文件下载。
用socket采用http协议发get请求,下载文件,并实现断点续传功能。
计算机软件-商业源码-使用HTTP协议下载web服务器上的文件或网页.zip
这个是根据http下载改编的,专门针对https协议的文件下载
这是基于HTTP协议用C#编写的一个文件下载的程序,内附全部源文件,可以参考学习,对网络编程的学习者具有很大的帮助,开发工具为VS2005。欢迎大家下载学习!
这是基于http协议的文件下载,平时网页上的很多连接下载都是基于http协议的文件下载,这个程序就是实现这个功能,看看有用!