Java中网络相关API的应用——InetAddress&URL

一、InetAddress类
标识网络上的硬件资源
package com.homework; import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Arrays; //获取InetAddress类
public class TestInetAddress { public static void main(String[] args) throws UnknownHostException {
//获取本机的InetAddress实例
//InetAddress address=new InetAddress(); InetAddress类无法通过new来创建对象
InetAddress address=InetAddress.getLocalHost();
System.out.println(address);//获取本机的计算机名和IP地址
System.out.println("计算机名: "+address.getHostName());
System.out.println("IP地址: "+address.getHostAddress()); byte[] bytes=address.getAddress();
System.out.println("字节形式的IP: "+bytes);
System.out.println("字节数组形式的IP: "+Arrays.toString(bytes)); //根据机器名获取InetAddress实例
//InetAddress address2=InetAddress.getByName("MS-20150617TVTE");
InetAddress address2=InetAddress.getByName("192.168.0.176");
System.out.println("计算机名: "+address2.getHostName());
System.out.println("IP地址: "+address2.getHostAddress());
} }
结果
MS-20150717TVTE/192.168.0.176
计算机名: MS-20150617TVTE
IP地址: 192.168.0.176
字节形式的IP: [B@7852e922
字节数组形式的IP: [-64, -88, 0, -83]
计算机名: MS-20150617TVTE
IP地址: 192.168.0.176
二、URL(Uniform Resource Locator) :统一资源定位符
参数:protocol - 要使用的协议名称 host - 主机名称 port - 主机端口号 file - 主机上的文件 ref - URL 中的内部引用
package com.homework; import java.net.MalformedURLException;
import java.net.URL; public class TestURL_01 {
public static void main(String[] args) {
try {
//创建一个URL实例
URL blogGarden=new URL("https://home.cnblogs.com");
//根据已存在的url实例创建新的实例
//?后面表示参数,#后面表示锚点
URL url=new URL(blogGarden,"/index.html?username=tom#test");
System.out.println("协议: "+url.getProtocol());
System.out.println("主机: "+url.getHost());
//如果未指定端口号,则使用默认的端口号,此时getPort()方法返回值为-1
System.out.println("端口: "+url.getPort());
System.out.println("文件路径: "+url.getPath());
System.out.println("文件名: "+url.getFile());
System.out.println("相对路径: "+url.getRef());
System.out.println("查询字符串: "+url.getQuery()); } catch (MalformedURLException e) {
e.printStackTrace();
} }
}
结果:
协议: https
主机: home.cnblogs.com
端口: -1
文件路径: /index.html
文件名: /index.html?username=tom
相对路径: test
查询字符串: username=tom
三、通过URL读取网页上的内容

package com.homework; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL; //通过URL读取网页上的内容
public class TestURL_02 {
public static void main(String[] args) {
try {
//创建一个url实例
URL url=new URL("http://www.baidu.com");
//通过URL的openStream方法获取URL对象所表示的资源的字节输入流
InputStream is=url.openStream();
//将其转换为字符输入流
InputStreamReader isr=new InputStreamReader(is,"utf-8");
//为字符流添加缓冲
BufferedReader br=new BufferedReader(isr);
String data=br.readLine();//读取数据 while(data!=null){//循环读取数据
System.out.println(data); //输出数据
data=br.readLine();
}
br.close();
isr.close();
is.close(); } catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} } }
结果:百度页面的编码
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge>
<meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css>
<title>百度一下,你就知道</title></head> <body········································· ·····················</body>
Java中网络相关API的应用——InetAddress&URL的更多相关文章
- 【Socket编程】Java中网络相关API的应用
Java中网络相关API的应用 一.InetAddress类 InetAddress类用于标识网络上的硬件资源,表示互联网协议(IP)地址. InetAddress类没有构造方法,所以不能直接new出 ...
- Java中网络编程
以下内容引用自http://wiki.jikexueyuan.com/project/java/networking.html: 术语网络编程指编写跨多种设备(电脑)执行的,设备使用一个网络互相连接的 ...
- Java中日期时间API小结
Java中为处理日期和时间提供了大量的API,确实有把一件简单的事情搞复杂的嫌疑,各种类:Date Time Timestamp Calendar...,但是如果能够看到时间处理的本质就可以轻松hol ...
- HBase篇--HBase操作Api和Java操作Hbase相关Api
一.前述. Hbase shell启动命令窗口,然后再Hbase shell中对应的api命令如下. 二.说明 Hbase shell中删除键是空格+Ctrl键. 三.代码 1.封装所有的API pa ...
- java 中 集合类相关问题
1,Java中Collection和Collections的差别 java.util.Collection 是一个集合接口.它提供了对集合对象进行基本操作的通用接口方法. Collection接口在J ...
- Java中路径相关的获取方式
[参考文章]:Java文件路径(getResource) [参考文章]:关于java:如何获取正在运行的JAR文件的路径? [参考文章]:关于Class.getResource和ClassLoader ...
- JAVA中HashMap相关知识的总结(一)
Java中HashMap在jdk1.7和jdk1.8中的区别点: 在jdk1.7中是用数组+链表形式存储,1.8采用数组+链表/红黑树形式 Jdk1.8中由链表转为红黑树是长度大于8,由红黑树转为链表 ...
- java中Object相关的几个方法
protected Object clone()创建并返回此对象的一个副本. String toString()返回该对象的字符串表示. boolean equals(Object obj)指 ...
- Java中定时器相关实现的介绍与对比之:Timer和TimerTask
Timer和TimerTask JDK自带,具体的定时任务由TimerTask指定,定时任务的执行调度由Timer设定.Timer和TimerTask均在包java.util里实现. 本文基于java ...
随机推荐
- 仿LOL项目开发第七天
仿LOL项目开发第七天 by 草帽 不知不觉已经写到了第七篇这种类型的博客,但是回过头看看之前写的,发现都只能我自己能看懂. 我相信在看的童鞋云里雾里的,因为我基本上没怎么详细讲一个脚本怎么用?但是你 ...
- Git教程之工作区和暂存区
工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:
- insert-delete-getrandom-o1-duplicates-allowed
https://leetcode.com/problems/insert-delete-getrandom-o1-duplicates-allowed/ public class Randomized ...
- 如何强制使用某一大小的包去ping某个IP地址?
测试MTU的时候用得到的, 命令如下: ping -f -l 9000 10.110.68.40 ping命令的帮助输出如下: C:\Users\administrator>ping /? Us ...
- 如何在Windows 7 或Vista中修改MTU
Windows操作系统使用Maximum Transmission Unit (MTU) 来确定在下面的网络层上可以传输的协议数据包(protocol data packet)的最大尺寸. MTU参数 ...
- 日期 日历 时区 地区 格式化 API 案例 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 两个JS对象怎样才能相等
在JS中,两个对象如何才能相等?下面的两个 Alert,只有一个输出true. 在JS中如何才能构造出两个JS对象相等? var prop1 = {asd:{def:'abc'}}; var pro ...
- CSS结构和层叠
每个合法的文档都会生成一个文档树,从而能根据元素的祖先,属性,兄弟元素等创建选择器来选择元素.有了这个结构树,选择器才能起作用,这也是CSS继承的核心.继承是从一个元素向其后代元素传递属性值所采用的机 ...
- smtp发送带附件的邮件(直接将string类型结果保存为附件)
该方式直接保存为HTML文件,也可以是文本文件,其它格式效果不是很好 MailMessage mmsg = new MailMessage(); mmsg.Subject = " ...
- The Info-Button Standard: Bring Meaningful Use To the Patient
http://thehealthcareblog.com/blog/2010/01/28/the-info-button-standard-bringing-meaningful-use-to-the ...