网络编程——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第三讲 ...
随机推荐
- zz剖析为什么在多核多线程程序中要慎用volatile关键字?
[摘要]编译器保证volatile自己的读写有序,但由于optimization和多线程可以和非volatile读写interleave,也就是不原子,也就是没有用.C++11 supposed会支持 ...
- delphi.thread.线程循环执行体结构
线程话题太大,又都是些坑,不知从哪方面讲起,所以,想一出是一出了. 不管怎样,我们从开始使用D,不管有没有用线程,其实它已经帮我们做了一个最完整的线程执行处理:Application.Run. 这行A ...
- javascript的地基
有了良好的基础,才能在其上创造有价值的东西. 回顾一下以往自己javascript应用的开发经历,似乎很少去思考和总结js的运行机制.现在我就来整理整理 1. 以<编译原理>的一段话开头: ...
- 《疯狂Java讲义》(一) ---- 关于学习Java的反思
"听到Spring很火,就立马买来一本Spring的书来读,最后结果往往是失败,因为这种学习没有积累,没有根基,学习过程中困难重重,每天都被一些相同.类似的问题所困扰,起初热情十足,经常上论 ...
- SQLyog-直接导出JSON格式的数据
前言:以前做过的一个项目,有这样的一个需求使用搜索引擎来查询对应的区域信息,不过区域信息要先导出来,并且数据格式是JSON格式的,在程序中能实现这个需求,不过下面的这种方法更加的简单,通过 ...
- php命名空间和autoload
参考: 1.http://www.cnblogs.com/thinksasa/p/3423480.html PHP的命名空间 2.http://blog.jjonline.cn/phptech/15 ...
- 扩展easyui.datagrid,添加数据loading遮罩效果代码 --来自网摘收集
//jquery.datagrid 扩展 (function (){ $.extend($.fn.datagrid.methods, { //显示遮罩 loading: function(jq){ r ...
- encodeURI来解决URL传递时的中文问题
在AJAX浏览器来进行发送数据时,一般它所默认的都是UTF-8的编码. 使用JQUERY中所提供的方法来做操作 encodeURI function verify() { //解决中文乱麻问题的 ...
- 关于C#的委托(delegate)的自我理解
首先描述一个事情,一个老师饿了,他要去买东西填饱肚子,然后他发现他的学生“小李”在玩,没学习,于是就委托“小李”去帮他买吃的. 根据这件事我们来分析: 首先得有个老师(老师饿了是他的方法,老师买东西也 ...
- java小白来报道
即将开启我的搬码生涯,奋斗吧,少年!