`
坏我一锅粥
  • 浏览: 59769 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

19、java根据URL下载文件内容

    博客分类:
  • IO
阅读更多
package com.tij.io.file;

import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;

/**
 * 从URL下载文件,简单实例
 * @author GYJ
 * @date 2014-3-22
 */
public class DownloadFileFromURL {

	/**
	 * 其实简单的流程就是打开URL的流数据,保存到我们本地文件
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		//下载的地址
		String url = "http://www.baidu.com/";
		downloadUsingStream(url, "/Users/GYJ/java1.txt");
		downloadUsingNIO(url, "/Users/GYJ/java1.txt");
	}
	
	/**
	 * 使用普通流的方式
	 * @param url	要下载的URL
	 * @param fileName	保存内容的文件
	 * @throws IOException 
	 */
	private static void downloadUsingStream(String urlS, String fileName) throws IOException {
		URL url  = new URL(urlS);
		BufferedInputStream bis = new BufferedInputStream(url.openStream());
		FileOutputStream fos = new FileOutputStream(fileName);
		byte[] buffer = new byte[1024];
		int count = 0;
		while ((count = bis.read(buffer, 0, 1024)) != -1) {
			fos.write(buffer, 0, count);
		}
		fos.close();
		bis.close();
	}
	
	/**
	 * 使用NIO的方式
	 * @param urlS	要下载的URL
	 * @param fileName   保存内容的文件
	 * @throws IOException 
	 */
	private static void downloadUsingNIO(String urlS, String fileName) throws IOException {
		URL url = new URL(urlS);
		ReadableByteChannel rbc = Channels.newChannel(url.openStream());
		FileOutputStream fos = new FileOutputStream(fileName);
		fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
	}

}



//====================下载结果===================
<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><link rel="dns-prefetch" href="//s1.bdstatic.com"/><link rel="dns-prefetch" href="//t1.baidu.com"/><link rel="dns-prefetch" href="//t2.baidu.com"/><link rel="dns-prefetch" href="//t3.baidu.com"/><link rel="dns-prefetch" href="//t10.baidu.com"/><link rel="dns-prefetch" href="//t11.baidu.com"/><link rel="dns-prefetch" href="//t12.baidu.com"/><title>百度一下,你就知道</title><style index="index" >html,body{height:100%}html{overflow-y:auto}#wrapper{position:relative;_position:;min-height:100%}#content{padding-bottom:100px;text-align:center}#ftCon{height:100px;position:absolute;bottom:44px;text-align:center;width:100%;margin:0 auto;z-index:0;overflow:hidden}#ftConw{width:720px;margin:0 auto}body{font:12px arial;text-align:;background:#fff}body,p,form,ul,li{margin:0;padding:0;list-style:none}body,form,#fm{position:relative}td..........省略
分享到:
评论

相关推荐

    JAVA语言程序设计【高清版】.pdf

    18 第3章 标识符和基本数据类型 19 3.1 Java的基本语法单位 19 3.1.1 空白、注释及语句 19 3.1.2 关键字 21 3.1.3 标识符 21 3.2 Java编码体例 22 3.3 Java的基本数据类型 23 3.3.1 变量和常量 23 ...

    java jdk实列宝典 光盘源代码

    多种方式读文件内容, 按字节读取文件内容、按字符读取文件内容、按行读取文件内容、随机读取文件内容; 多种方式写文件内容, 按字节写文件内容、按字符写文件内容、按行写文件内容 ; 添加内容到文件结尾;文件的...

    java发送url请求进行文件的提交及后台struts2的action接收处理

    java发送url请求进行文件的提交以及后台struts2的action接收处理  1、java模拟表单方式发送url请求进行文件的提交  /**  *  * @作者 王建明  * @创建日期 2013-06-27  * @创建时间 19:28:18  * @...

    Java开发详解.zip

    031902_【第19章:Java网络编程】_URL与URLConnection笔记.pdf 031903_【第19章:Java网络编程】_URLEncoder与URLDecoder笔记.pdf 031904_【第19章:Java网络编程】_TCP程序设计笔记.pdf 031905_【第19章:Java网络...

    Java2实用教程.rar

    12 3JavaApplet扣使用URL 12 4JavaApplet中建立新线程 12 5JavaApplet中使用套接字 习题 第13章常见数据结构的Java实现 13 1链表 13 2栈 13 3树集 13 4树映射 13 5散列集 13 6散列表 13 7向量 习题 第14章图形与图像...

    JAVA 范例大全 光盘 资源

    实例38 Java字符串与文件的互转 88 实例39 截取带汉字的字符串 91 实例40 替换字符串中的部分字符 92 实例41 Java字符串之密码加密 93 实例42 正则表达式验证字符串 95 第7章 Java常用类 98 实例43 数字的舍入...

    Java JDK实例宝典

    10 添加内容到文件尾 7. 11 文件的分割与合并 7. 12 从键盘接收数据并输出到文件 7. 13 使用StreamTokenizer统计文件的字符数 7. 14 序列化和反序列化对象 7. 15 控制对象的序列化和反序列 ...

    java范例开发大全

    实例231 模仿网络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实例232 多线程同步方法的实例 436 实例233 ATM存取一体机(线程同步互斥) 437 实例234 我的钱哪里去了 440 实例235 门锁打不开了(死锁) ...

    java范例开发大全源代码

     实例139 利用POI读取Word文件中的内容 208  7.3 字符流 209  实例140 按顺序创建文件 210  实例141 按顺序读取文件 211  实例142 追加文件内容 211  实例143 只显示文件中指定的字符 214  实例...

    JAVA基础课程讲义

    一个典型的JAVA程序的编写和运行过程 19 第一个程序常见错误 20 第一个JAVA程序的总结和提升 20 常用Java开发工具 20 常用dos命令 21 本章笔试作业 21 本章上机操作 21 第二章(1) 编程的基本概念 22 注释 22 标识符 ...

    Java范例开发大全 (源程序)

     实例139 利用POI读取Word文件中的内容 208  7.3 字符流 209  实例140 按顺序创建文件 210  实例141 按顺序读取文件 211  实例142 追加文件内容 211  实例143 只显示文件中指定的字符 214  实例144 ...

    java 面试题 总结

    forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 redirect...

    Java程序设计复习题.docx.docx

    Java程序设计复习题 Java程序设计复习题全文共19页,当前为第1页。Java程序设计复习题全文共19页,当前为第1页。一、选择题: Java程序设计复习题全文共19页,当前为第1页。 Java程序设计复习题全文共19页,当前为第...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    以前写了一个java的正规表达式的java工具类,分享一下,有用到的欢迎下载使用。 如果你有常用的定义好的,且测试通过的正规表达式,欢迎跟贴,也让我享用一下 . 类中用到了 jakarta-oro-2.0.jar 包,请大家自己在 ...

    java基础案例与开发详解案例源码全

    2.3.1 Java程序中的类型19 2.3.2 Java程序开发三步曲21 2.3.3 开发Java第一个程序21 2.3.4 Java代码中的注释23 2.3.5 常见错误解析24 2.4 Java类库组织结构和文档27 2.5 Java虚拟机简介28 2.6 Java技术两种核心运行...

    Java范例开发大全(全书源程序)

    实例231 模仿网络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实例232 多线程同步方法的实例 436 实例233 ATM存取一体机(线程同步互斥) 437 实例234 我的钱哪里去了 440 实例235 门锁打不开了...

    JAVA编程百例(照着例子更容易!)

    实例2 java流程控制 实例20 工具栏 实例21 内部窗体 实例22 分割一个面板 实例23 滑动杆 实例24 颜色过滤器 实例25 表格 实例26 基本图形绘制 实例27 绘制波图形 实例28 图片的处理 实例29 绘制指针时钟 实例3 数组...

    java范例开发大全(pdf&源码)

    实例231 模仿网络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实例232 多线程同步方法的实例 436 实例233 ATM存取一体机(线程同步互斥) 437 实例234 我的钱哪里去了 440 实例235 门锁打不开了(死锁) ...

    Android开发人员不得不收集的代码

    根据文件路径获取文件 getFileByPath 判断文件是否存在 isFileExists 判断是否是目录 isDir 判断是否是文件 isFile 判断目录是否存在,不存在则判断是否创建成功 createOrExistsDir 判断文件是否存在,不存在则判断...

Global site tag (gtag.js) - Google Analytics