/*

* 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类的更多相关文章

  1. JAVA中封装JSONUtils工具类及使用

    在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...

  2. Java中直接输出一个类的对象

    例如 package com.atguigu.java.fanshe; public class Person { String name; private int age; public Strin ...

  3. Java中Date和Calender类的使用方法

    查看文章     Java中Date和Calender类的使用方法 2009-10-04 20:49 Date和Calendar是Java类库里提供对时间进行处理的类,由于日期在商业逻辑的应用中占据着 ...

  4. Java中的不可变类理解

    一.Java中的不可变类 不可变类(Immutable Objects):当类的实例一经创建,其内容便不可改变,即无法修改其成员变量. 可变类(Mutable Objects):类的实例创建后,可以修 ...

  5. Java 中的静态嵌套类和非静态嵌套类

    Java 中的静态嵌套类和非静态嵌套类 术语:嵌套类分为两类:静态嵌套类和非静态嵌套类.声明 static 的嵌套类称为静态嵌套类,非静态嵌套类也称为内部类. class OuterClass { p ...

  6. Java中如何查看一个类依赖的包

    Java中如何查看一个类依赖的包 如图, 我如何知道JSONArray是依赖的哪一个包呢,这里有两个json-lib包?   测试语句:   public static void main(Strin ...

  7. 问题009:java当中的关键字有哪些?在Editplus文本编辑软件中是什么颜色的?java当中的标识符有什么要求?Java中注释分为几类?

    (1) public 公共的,表示访问的权限 (2) private 私有的,表示一种访问权限 (3) class 类关键字,表示定义一个类 java中的关键字都是大写的还是小写的?小写的,在Edit ...

  8. Java 中常见的 final 类

    Java 中常见的 final 类 java.lang 包 public final class Boolean extends Object implements Serializable, Com ...

  9. Java 中的并发工具类

    Java 中的并发工具类 CountDownLatch public class JoinCountDownLatchTest { public static void main(String[] a ...

随机推荐

  1. elasticsearch文档-analysis

    elasticsearch文档-analysis   analysis 基本概念 全文搜索引擎会用某种算法对要建索引的文档进行分析, 从文档中提取出若干Token(词元), 这些算法称为Tokeniz ...

  2. 【Hook技术】实现从"任务管理器"中保护进程不被关闭 + 附带源码 + 进程保护知识扩展

    [Hook技术]实现从"任务管理器"中保护进程不被关闭 + 附带源码 + 进程保护知识扩展 公司有个监控程序涉及到进程的保护问题,需要避免用户通过任务管理器结束掉监控进程,这里使用 ...

  3. 7z文件格式及其源码

    7z文件格式及其源码的分析(四) 这是7z文件格式及其源码的分析系列的第四篇. 上一篇讲到了7z文件静态结构的尾header部分.这一篇开始,将从7z实际压缩流程开始详细介绍7z文件尾header的详 ...

  4. Define Constraints That Are Minimal and Sufficient 设定不多不少的约束

    Define Constraints That Are Minimal and Sufficient 设定不多不少的约束   今天第二章第二节. 主管不在,然后暂时没什么任务,把第二节看了,然后整理一 ...

  5. 自动生成Code First代码

    自动生成Code First代码 在前面的文章中我们提到Entity Framework的“Code First”模式也同样可以基于现有数据库进行开发.今天就让我们一起看一下使用Entity Fram ...

  6. GCD与多线程

    GCD与多线程 GCD,全称Grand Central Dispath,是苹果开发的一种支持并行操作的机制.它的主要部件是一个FIFO队列和一个线程池,前者用来添加任务,后者用来执行任务. GCD中的 ...

  7. 我的TDD实践---UnitTest单元测试

    我的TDD实践---UnitTest单元测试 “我的TDD实践”系列之UnitTest单元测试 写在前面: 我的TDD实践这几篇文章主要是围绕测试驱动开发所展开的,其中涵盖了一小部分测试理论,更多的则 ...

  8. 构建一个真实的应用电子商务SportsStore9

    使用MVC4,Ninject,EF,Moq,构建一个真实的应用电子商务SportsStore(九) 实在不好意思,好久没有更新了,我不想找些客观原因来解释,只想请大家见谅!现在我们继续我们的项目,客户 ...

  9. MingQQ v1.0高仿版开源了,使用WebQQ协议实现了QQ客户端基本的聊天功能...

    MingQQ v1.0高仿版开源了,使用WebQQ协议实现了QQ客户端基本的聊天功能... MingQQ目前支持的功能如下:1.支持普通方式登录.验证码方式登录.注销.保持在线.改变在线状态.2.支持 ...

  10. replace()随笔

    今天在读jquery源码时,发现一个以前自己不曾注意过得问题,就是replece()的第二个参数为函数时的问题,以前只是知道replace()的第二个参数可以为函数,但是不知道该怎么操作,今天看到源码 ...