java中的URL InetAddress类
/*
* InetAddress类:
* 用于标识网络上的硬件资源,表示互联网协议(ip)地址,是java对ip地址的封装。
* 其实例对象包含以数字形式保存的IP地址,主机名。
* InetAddress类提供了将主机名解析为IP地址(或反之)的方法。
*
* 1InetAddress对象的获取
InetAddress的构造函数不是公开的(public),所以需要通过它提供的静态方法来获取,有以下的方法:
static InetAddress[] getAllByName(String host)
工厂方法返回代表由一个特殊名称分解的所有地址的InetAddresses类数组。
static InetAddress getByAddress(byte[] addr)
返回给定的原始IP地址InetAddress对象
static InetAddress getByAddress(String host,byte[] addr)
返回给定的主机名和原始IP地址InetAddress对象
static InetAddress getByName(String host)
返回一个传给它的主机名的InetAddress。
static InetAddress getLocalHost()
仅返回象征本地主机的InetAddress对象。
若访问本地地址则用getLocalHost()方法,比较常用的是getByName(String host)方法,
只需要传入目标主机的名字,InetAddress会尝试做连接DNS服务器,并且获取IP地址的操作
如:InetAddress address=InetAddress.getByName("www.baidu.com");
2.获取 InetAddress对象属性
如
getHostName() 获得主机名
getHostAddress() 获得IP地址
*/
/*
* url
* 用JAVA实现URL
URL:统一资源定位符,通过URL可直接读取/写入网络上的数据,是Internet上某一资源的定位符。
通过一个URL连接,我们就可以确定资源的位置,比如网络文件、网络页面以及网络应用程序等。
1、创建URL对象
URL类有多种形式的构造函数:
(1) URL ( String url)
//url代表一个绝对地址,URL对象直接指向这个资源,
(2) URL ( URL baseURL , String relativeURL)
// 其中,baseURL代表绝对地址,relativeURL代表相对地址。
?号后表示参数,#后表示锚点
(3) URL ( String protocol , String host , String file)
//其中,protocol代表通信协议,host代表主机名,file代表文件名。如:
new URL (“http” , www.cqwu.edu.cn, “/ test / test.asp);
(4) URL ( String protocol , String host , int port , String file)
URL lib = new URL (“http” , www.cqwu.edu.cn, 80 , “/ test / test.asp”);
2.URL连接
成功的创建了一个URL 对象后,就可以对其进行操作。
但是在访问这个URL上的资源和内容之前,必须要打开到这些资源与内容上的连接->通过使用openConnection方法来完成这一操作。
用法如下:
URL url = new URL("http://www.baidu.com.cn");
URLConnection urlcon = url.openConnection();
urlconn.connect();//获取连接
连接成功后,就可以开始对这个URLConnection的输入以及输出流进行读和写的操作了。
3. 从URL 连接中读取数据
方法1:通过openConnection()方法建URLConnection类对象
成功连接后,就可以获得针对这个连接的输入流并且对其进行读操作。
URL可以代表很多不同种类的数据类型所组成的资源。java.io classes可以对文件流或者socket流进行操作方式同样可以对从URLConnection流返回的数据进行读操作。
URL url = new URL("http://www.baidu.com.cn");
URLConnection urlcon = url.openConnection();
urlconn.connect();//获取连接
//打开连接读取的输入流。
InputStream is = urlcon.getInputStream();
int c;
//进行读操作
while ((c = is.read()) != -1)
System.out.print(c);
//关闭输入流
in.close();
方法2:通过URL类的openStream()方法
URL url =new URL("http://music.163.com/#/user/home?id=1");
//打开URL连接并返回一个用于从该连接读入的InputStream字节输入流。
InputStream is = url.openStream();
//将字节输入流转换为字符输入流
InputStreamReader isr = new InputStreamReader(is);
//为字符输入流添加缓冲,提高效率
BufferedReader bfr = new BufferedReader (isr);
//读取数据
String data = bfr.readline();
while (data!=null) {
System.out.printf(data);
data = bfr.readline();
}
bfr.close();
isr.close();
is.close();
4.对URL进行写的操作
使用java.io stream classes对URL进行写的操作:成功连接后,就可以得到来自此连接的输出流并且开始进行写的操作。
在获得并对URLConnection流进行写的操作之前,还需要使用setDoOutput(boolean)方式把输出(Output)属性设置为真(true)来指定可以进行写操作的那些连接。
Java.io classes允许你把数据写到URLConnection流,这个操作也和你对文件流和socket流进行的写操作一样。
5.获取URL对象的属性
getDefaultPort(): 返回默认的端口号。
getFile(): 获得URL指定资源的完整文件名。
getHost(): 返回主机名。
getPath(): 返回指定资源的文件目录和文件名。
getPort(): 返回端口号,默认为-1。
getProtocol(): 返回表示URL中协议的字符串对象。
getRef(): 返回URL中的HTML文档标记,即#号标记。
getUserInfo: 返回用户信息。
toString: 返回完整的URL字符串。
*/
java中的URL InetAddress类的更多相关文章
- JAVA中封装JSONUtils工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- Java中直接输出一个类的对象
例如 package com.atguigu.java.fanshe; public class Person { String name; private int age; public Strin ...
- Java中Date和Calender类的使用方法
查看文章 Java中Date和Calender类的使用方法 2009-10-04 20:49 Date和Calendar是Java类库里提供对时间进行处理的类,由于日期在商业逻辑的应用中占据着 ...
- Java中的不可变类理解
一.Java中的不可变类 不可变类(Immutable Objects):当类的实例一经创建,其内容便不可改变,即无法修改其成员变量. 可变类(Mutable Objects):类的实例创建后,可以修 ...
- Java 中的静态嵌套类和非静态嵌套类
Java 中的静态嵌套类和非静态嵌套类 术语:嵌套类分为两类:静态嵌套类和非静态嵌套类.声明 static 的嵌套类称为静态嵌套类,非静态嵌套类也称为内部类. class OuterClass { p ...
- Java中如何查看一个类依赖的包
Java中如何查看一个类依赖的包 如图, 我如何知道JSONArray是依赖的哪一个包呢,这里有两个json-lib包? 测试语句: public static void main(Strin ...
- 问题009:java当中的关键字有哪些?在Editplus文本编辑软件中是什么颜色的?java当中的标识符有什么要求?Java中注释分为几类?
(1) public 公共的,表示访问的权限 (2) private 私有的,表示一种访问权限 (3) class 类关键字,表示定义一个类 java中的关键字都是大写的还是小写的?小写的,在Edit ...
- Java 中常见的 final 类
Java 中常见的 final 类 java.lang 包 public final class Boolean extends Object implements Serializable, Com ...
- Java 中的并发工具类
Java 中的并发工具类 CountDownLatch public class JoinCountDownLatchTest { public static void main(String[] a ...
随机推荐
- QuickWebApi2:使用Lambda方式,完成对WebApi的开发和调用-文档的生成
续 QuickWebApi:使用Lambda方式,完成对WebApi的开发和调用 上一篇完成了主要的功能,本次修订主要重构了对接口文档的生成规范,使之可读性更佳,甚至可以作为接口文档进行发布(当然,在 ...
- 使用axis2访问webservice(webserivice基于.net平台实现)
webservice url=http://10.90.11.240:8081/ExceptionWebService.asmx?WSDL: 下载axis2组件,解压,进入bin目录,通过命令wsdl ...
- xml数据解析
xml数据解析 在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML.TouchXML.Kiss ...
- ToList<>()所带来的性能影响
ToList<>()所带来的性能影响 前几天优化师弟写的代码,有一个地方给我留下很深刻的印象,就是我发现他总是将PLINQ的结果ToList<>(),然后再返回给主程序,对于 ...
- .net下简单快捷的数值高低位切换
.net下简单快捷的数值高低位切换 做网络通讯中数值传输是很普遍的事情,但数值的存储在不平台和硬件上存储方式都不一样,主要有两大类分别是高位和低位存储:而.net平台下是低位存储,通过.net提供的函 ...
- Organic Solar Cells - Theory and Practice
renewable engergy: Wind solar Tidal Wave Ocean Bio Etc. How much energy we gonna need as following y ...
- strut2读源码记录
首先你得准备一个很简单的struts2的程序,可以发一次请求后能返回一个正确的响应,当然,struts2的源码也要有,我这里用的myeclipse调试的,本来是想用eclipse,因为本人习惯于用ec ...
- Python学习入门基础教程(learning Python)--6 Python下的list数据类型
1. List是数组么? 答案是: 不是!Python 里面有一个非常强大的数据类型list.他什么都能装下!list里面既可以支持 int类型,也可以支持str类型. >>> li ...
- 手动创建servlet
1 tomcat/webapps/目录下创建web应用mail. 目录结构如下 tomcat/webapps | mail | WEB-INF | | ...
- Oracle层次查询和with函数的使用
开发中大家应该都做过什么类似部门管理这样的功能,一般情况下一个部门下面还有下一级部门(子部门),这个层级就类似一棵树.这种情况下一般会把父级部门和子级部门分成2个或者多个表,这种算是比较常规的做法:有 ...