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 ...
随机推荐
- EasyUI 常规用法
(function () { // 获取树的路径,如 组织分类 > YHBH > 湖南省卫生厅 > 湖南省长沙市 var getBreadcrumbs = funct ...
- mysql的TABLE_SCHEMA的sql和information_schema表, MySQL管理一些基础SQL语句, Changes in MySQL 5.7.2
3.查看库表的最后mysql修改时间, 如果第一次新建的表可能还没有update_time,所以这里用了ifnull,当update_time为null时用create_time替代 select T ...
- python里的引用、浅拷贝、深拷贝
参考: 1.http://wsfdl.com/python/2013/08/16/%E7%90%86%E8%A7%A3Python%E7%9A%84%E6%B7%B1%E6%8B%B7%E8%B4%9 ...
- Informatica 常用组件Lookup之九 配置未连接的查找转换
在映射中,未连接的查找转换与管道是分开的.您可以使用 :LKP 引用限定符编写表达式以调用其它转换中的查找.未连接查找的常用用法包括: 测试表达式中某个查找的结果 基于查找结果过滤行 基于查找的结果将 ...
- SQL查询今天、昨天、7天内、30天【转】
SQL查询今天.昨天.7天内.30天 今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:sele ...
- WebViewClient 简介 API 案例
代码位置:https://github.com/baiqiantao/WebViewTest.git 设计思想理解 在WebView的设计中,不是什么事都要WebView类干的,有相当多的杂事是分给其 ...
- Android之AlarmManager
Android平台中,Alarm Manager Service控制着闹钟和唤醒功能.和其他系统服务一样,提供了一个辅助管理类-AlarmManager,我们只需要使用AlarmManager即可调用 ...
- LigerUI之Grid使用详解(三)——字典数据展示
一.问题概述 在开发web信息管理系统时,使用Web前端框架可以帮助我们快速搭建一组风格统一的界面效果,而且能够解决大多数浏览器兼容问题,提升开发效率.在关于LigerGrid的前两篇的内容里,给大家 ...
- Android -- Drawable && Bitmap
Bitmap转Drawable Bitmap bm=xxx; BitmapDrawable bd=new BitmapDrawable(bm); 因为BtimapDrawable是Drawable的子 ...
- Linux command 系统快捷键
群里有人问"问个问题,Linux 命令行有没有快捷键一下从行末会到行头?经常敲了很多命令发现忘加 sudo 了,然后把命令删了重新敲一遍". 自己还真不知道怎么操作,只知道历史命令 ...