/*

* 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. GDB-Darwin-Extentions

  2. ARM备忘

    mov: move sub: subtract cmp: compare cmpls: ls--->lower or same, le--->less or equal, hi---> ...

  3. C语言可变参数函数的编写

    1. 引言 C语言我们接触的第一个库函数是 printf(“hello,world!”);其参数个数为1个. 然后,我们会接触到诸如: printf(“a=%d,b=%s,c=%c”,a,b,c);此 ...

  4. Windows7和Archlinux双系统硬盘安装笔记

    俗话说,好记性不如烂笔头,这些东西也都是我Google来的,做个笔记以后自己安装也方便些. 因为官方wiki的Beginners' Guide讲的非常好,大部分步骤按照wiki一步一步来就好了,这里只 ...

  5. windows下配置PHP+Nginx+MySQL完整流程(转)

    对于在windows上的php+nginx的配置可能好多同学一次根本都配不正确,于我也是如此,为此我将我成功配置的过程细致的总结如下,希望能帮助搞PHP研究的同学 1.资源准备 MySQL:这个链接不 ...

  6. 更快的memcpy

    更快的memcpy 写代码有时候和笃信宗教一样,一旦信仰崩溃,是最难受的事情.早年我读过云风的一篇<VC 对 memcpy 的优化>,以及<Efficiency geek 2: co ...

  7. 关于《数据格式修改》的简单应用程序(C语言)

    关于<数据格式修改>的简单应用程序(C语言) 至亲爱的博友: 大家好,好久不见了.由于博主还是一名大学在校生,不可避免的需要和指导教师共同完成一些项目,因此前一段时间暂时停止了博客的更新. ...

  8. 详解android的号码匹配

    什么是号码匹配,个人理解,即判断两组号码是否属于同一个号码.在实际使用过程中,接触到的号码会涉及到区号,国家编码以及IP号码等,这个时候就用到了号码匹配.两个内容不一样的号码,如+86***和1795 ...

  9. 学习Machine Leaning In Action(四):逻辑回归

    第一眼看到逻辑回归(Logistic Regression)这个词时,脑海中没有任何概念,读了几页后,发现这非常类似于神经网络中单个神经元的分类方法. 书中逻辑回归的思想是用一个超平面将数据集分为两部 ...

  10. SPFILE 、PFILE 的全面解读

    这里先阐述一下数据库的启动过程: 1.      启动实例/例程(nomount状态)时,读取参数文件(文本文件PFILE 或服务器参数文件SPFILE),分配SGA.启动后台进程.打开告警文件及后台 ...