利用JAVA下载网络文件
来源:互联网 发布:护肤品市场数据 编辑:程序博客网 时间:2024/06/06 17:30
package tom;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.RandomAccessFile;import java.net.HttpURLConnection;import java.net.URL;public class DownLoadFile {/** * 下载网络文件 * @param surl 要下载文件的URL地址 * @param fileName 保存下载后文件的文件名 * @param filePath 保存的路径 */public static void downLoadFile(String surl,String fileName,String filePath){String sURL = surl;int nStartPos = 0;int nRead = 0;String sName = fileName;String sPath = filePath;File dir=new File(filePath);if(!dir.exists()){dir.mkdirs();}try {File file=new File(dir,fileName);if(!file.exists()){file.createNewFile();}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 + "-";httpConnection.setRequestProperty("RANGE", 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();}System.out.println("downLoadFile sucessful !");}/** * 获取文件长度 * @param sURL 下载文件的URL地址 * @return 下载文件的大小 */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; }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;}} elsebreak;}} catch (IOException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}System.out.println(nFileLength);return nFileLength;}}
测试文件:
package tom;import tom.DownLoadFile;public class DownLoadFile1 {/** * @param args */public static void main(String[] args) {DownLoadFile.downLoadFile("http://f.hiphotos.baidu.com/image/pic/item/472309f79052982257d81bc2d5ca7bcb0b46d4c3.jpg", "beatifulGril.jpg", "e:\\downloadFile\\");}}
0 0
- 利用JAVA下载网络文件
- 利用代理下载网络文件
- Java 网络文件下载
- java 网络文件下载
- java下载网络文件
- Android 利用多线程从网络下载文件
- java 批量下载网络文件
- Java BufferedReader下载网络文件
- Java Http下载网络文件
- java下载网络文件代码
- java-网络文件下载器
- Java:利用TCP编程进行文件下载
- java利用Socket网络传递文件
- C++利用文件下载实现网络测速的总结
- 用Java制作网络文件下载系统
- 用Java制作网络文件下载系统
- 用Java制作网络文件下载系统
- 用Java制作网络文件下载系统
- 黑马程序员_java的IO流三_15
- tomcat(非安装版) 服务不能启动但是startup 却可以启动的问题
- AJAX
- C++构造函数、拷贝构造函数、赋值运算符漫谈(一)——函数参数传递
- iOS开发-ios7下拉刷新,上提加载快速集成
- 利用JAVA下载网络文件
- 智联招聘发布2013IT行业招聘需求报告
- SAS:SAS常用语句 HISTOGRAM
- poll&&epoll实现分析(一)——poll实现
- avaI/O系统基础知识 编程语言的I/O类库中常常使用流这个抽象的概念JVAV学习平台交流不落
- Json数据
- 【图文】Latex 中文字体的使用
- 【android】权限大全
- 继承--指针输出