网络编程——URL编程
URL:是统一资源定位器的简称,它表示Internet某一资源的地址。通过URL我们可以访问Internet上的各种网络资源,比如最常见的www,ftp站点。浏览器通过解析给定的URL可以在网络上查找相应的文件或其他资源。
组成:URL的基本结构由5部分组成。
<传输协议>://<主机名>:<端口号>/<文件名>#<引用>
http://www.tomcat.com:80/Gamelan/network.htm#BOTTOM
协议名://机器名+端口号+文件名+内部引用
为了表示URL,java.net包中实现了类URL。
构造方法
① URL(String url)
//url代表一个绝对地址,URL对象直接指向这个资源,如:
URL url=new URL(http://www.baidu.com);
② URL(URL baseURL,String relativeURL)
//其中,baseURL代表绝对地址,relativeURL代表相对地址,如:
URL url=new URL(http://www.baidu.com);
URL lib=new URL(url,”library/library.htm”);
③ URL(String protocol,String host,String file)
//其中,protocol代表通信协议,host代表主机名,file代表文件名,如:
new URL(“http”,www.baidu.com,”/test/test.htm”);
④ URL(String protocol,String host,int port,String file)
URL lib = new URL(“http”,www.baidu.com,80,”/test/test.htm”);
获取URL对象的属性
① getFile():获得URL指定资源的完整文件名。
② getHost():返回主机名。
③ getPath():返回指定资源的文件目录和文件名。
④ getPort():返回端口号。
⑤ getProtocol():返回表示URL中协议的字符串对象。
⑥ getRef():返回URL中的HTML文档标记,即#号标记。
⑦ getUserInfo():返回用户信息。
URL有两种方法可以用来访问Interent上资源。
① 使用URL的openConnection()方法创建一个URLConnection类的对象。再通过URLConnection对象获取相应的输入/输出流。
② 利用URL类的openStream()方法。openStream()方法与指定的URL建立连接并返回InputStream类的对象。
示例:下载url文件到指定目录
下载方法:
 class DownLoadUtil {
     public static void download(String urlString, String fileName,
             String savePath) throws IOException {
         URL url = new URL(urlString);
         //方法一
         // URLConnection conn = url.openConnection();
         // InputStream is = conn.getInputStream();
         //方法二
         InputStream is = url.openStream();
         byte[] buff = new byte[1024];
         int len = 0;
         File file = new File(savePath);
         if (!file.exists()) {
             file.mkdirs();
         }
         OutputStream os = new FileOutputStream(file.getAbsolutePath() + "\\"
                 + fileName);
         while ((len = is.read(buff)) != -1) {
             os.write(buff, 0, len);
         }
         // 释放资源
         os.close();
         is.close();
     }
 }
主方法:
         try {
             DownLoadUtil
                     .download(
                             "http://images.sohu.com/saf/a2016/0511/wKiDRFcy-16AHkkXAABH52NJX18606.jpg",
                             "my.jpg", "d:/ceshi");
         } catch (IOException e) {
             e.printStackTrace();
         }
网络编程——URL编程的更多相关文章
- java  URL编程
		
一.URL编程技术 URL是统一资源定位器的缩写,它是指向互联网“资源”的指针.URL表示了Internet上某个资源的地址.URL支持http,file,ftp等 多种协议.通过URL标识,可以直接 ...
 - Socket网络编程-UDP编程
		
Socket网络编程-UDP编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.UDP编程概述 1>.UDP服务端编程流程 创建socket对象.socket.SOCK_ ...
 - Socket网络编程-TCP编程
		
Socket网络编程-TCP编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.socket介绍 1>.TCP/IP协议 2>.跨网络的主机间通讯 在建立通信连接的 ...
 - h5 录音  自动生成proto Js语句  UglifyJS-- 对你的js做了什么  【原码笔记】-- protobuf.js 与 Long.js  【微信开发】-- 发送模板消息  能编程与会编程  vue2入坑随记(二) -- 自定义动态组件  微信上传图片
		
得益于前辈的分享,做了一个h5录音的demo.效果图如下: 点击开始录音会先弹出确认框: 首次确认允许后,再次录音不需要再确认,但如果用户点击禁止,则无法录音: 点击发送 将录音内容发送到对话框中.点 ...
 - PAIP.并发编程 多核编程 线程池 ExecutorService的判断线程结束
		
PAIP.并发编程 多核编程 线程池 ExecutorService的判断线程结束 ExecutorService并没有提供什么 isDone()或者isComplete()之类的方法. 作者Atti ...
 - 10Spring_AOP编程(传统编程)
		
注意我写这篇文章的思路,要想做切面编程,包含两个部分,通知和切点,通知是你要做哪些增强,切点是指你要拦截哪些方法.先介绍通知的定义再去介绍切点的定义.这篇文章我取名叫做Spring_AOP编程(传统编 ...
 - 网络爬虫-url索引
		
网络爬虫-url索引 http://www.cnblogs.com/yuandong/archive/2008/08/28/Web_Spider_Url_Index.html url索引的作用是判断一 ...
 - Atitit.软件开发概念(11)--网络子系统--url编码 空格问题URLEncoder java js php
		
Atitit.软件开发概念(11)--网络子系统--url编码 空格问题URLEncoder java js php 1. RFC2396标准 including HTML 4.01 section ...
 - 少儿编程|Scratch编程教程系列合集,总有一款适合你
		
如果觉得资源不错,友情转发,贵在分享!!! 少儿编程Scratch: 少儿编程Scratch第一讲:Scratch完美的初体验少儿编程Scratch第二讲:奇妙的接球小游戏少儿编程Scratch第三讲 ...
 
随机推荐
- 04-c#入门(类型转换)
			
“无论是什么类型,所有的数据都是一系列的位,即一系列0和1.变量的含义是通过解释这些数据的方式来传达的.”——这句原话是书上翻译的,不过后一句话总感觉理解起来不是很通俗,自己觉得这样理解可能会合适些: ...
 - RabbitMQ小结
			
1.帮助文档 rabbitmq官网:http://www.rabbitmq.com/ rabbitmq谷歌论坛:https://groups.google.com/forum/#!forum/rabb ...
 - Unity3d程序运行的时候在unity3d标志哪里进不去的原因
			
我那个去,居然是有两个error..我郁闷了,unity编译器有error居然也能打包能apk.我真是醉了.搞了我几个小时.
 - mac boot2docker  certs not valid with 1.7
			
摘自:https://github.com/boot2docker/boot2docker/issues/824 An error occurred trying to connect: Get ht ...
 - (分享)多功能 PDF转换器v3.0版本
			
转换的效果非常不错,值得使用.破解成功的截图:这个程序必须随便输入注册码注册,不然会有水印的. 这是程序主界面了 正在测试pdf转word过程,转换结果个人感觉非常不错,跟原版pdf的格式非常接近,个 ...
 - Leetcode4:Median of Two Sorted Arrays@Python
			
There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two ...
 - 常用COBOL函数
			
本文来自(http://refer.it-manual.com/cobol.html) COBOL関数(JIS-COBOL規格標準)の一覧表を掲載しています. COBOL関数一覧表は.各項目での並べ替 ...
 - CSS3 04
			
animate.css库的使用 官网:https://daneden.github.io/animate.css/ 作用:将一切常见的动画直接封装,开发者不需要考虑实现过程,只需要添加对应的类就能实现 ...
 - Python导入cx_Oracle报错
			
系统环境:RHEL5.4 python2.5(手动编译安装,系统带有2.4版本) 在使用python脚本访问数据库时,需要导入cx_Oracle模块 $>>>import cx_ ...
 - 深入理解JavaScript系列
			
转自http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 深入理解JavaScript系列(1):编写高质量JavaScript代码 ...