java URL java.net.URL类的使用 详细介绍 URL转义 解决URL中文字符
类 URL
代表一个统一资源定位符,它是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,也就是我们常说的域名、浏览器访问地址。
在Java中就是使用URL访问网络资源,获取url对象的相关信息。
下面介绍具体是使用
1.构造方法,一般使用较多的就下面这两个,可以参照api
http://www.javaweb.cc/help/JavaAPI1.6/index.html?java/nio/ReadOnlyBufferException.html
URL(String spec) 根据 String 表示形式创建 URL 对象。
|
URL(String protocol, String host, int port, String file) 根据指定 protocol 、host 、port 号和 file 创建 URL 对象。
|
public URL(String spec) throws MalformedURLException {this(null, spec);}
创建URL对象必须捕获MalformedURLException异常,可能URL有缺陷。
2.方法
String
|
getAuthority() 获取此 URL 的授权部分。
|
Object
|
getContent() 获取此 URL 的内容。 |
Object
|
getContent(Class[] classes) 获取此 URL 的内容。 |
int
|
getDefaultPort() 获取与此 URL 关联协议的默认端口号。
|
String
|
getFile() 获取此 URL 的文件名。
|
String
|
getHost() 获取此 URL 的主机名(如果适用)。
|
String
|
getPath() 获取此 URL 的路径部分。
|
int
|
getPort() 获取此 URL 的端口号。
|
String
|
getProtocol() 获取此 URL 的协议名称。
|
String
|
getQuery() 获取此 URL 的查询部分。
|
String
|
getRef() 获取此 URL 的锚点(也称为“引用”)。
|
String
|
getUserInfo() 获取此 URL 的 userInfo 部分。
|
int
|
hashCode() 创建一个适合哈希表索引的整数。 |
URLConnection
|
openConnection() 返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。
|
URLConnection
|
openConnection(Proxy proxy) 与 openConnection() 类似,所不同是连接通过指定的代理建立;不支持代理方式的协议处理程序将忽略该代理参数并建立正常的连接。 |
InputStream
|
openStream() 打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream 。
|
boolean
|
sameFile(URL other) 比较两个 URL,不包括片段部分。 |
protected void
|
set(String protocol, String host, int port, String file, String ref) 设置 URL 的字段。 |
protected void
|
set(String protocol, String host, int port, String authority, String userInfo, String path, String query, String ref) 设置 URL 的指定的 8 个字段。 |
static void
|
setURLStreamHandlerFactory(URLStreamHandlerFactory fac) 设置应用程序的 URLStreamHandlerFactory 。
|
String
|
toExternalForm() 构造此 URL 的字符串表示形式。
|
String
|
toString() 构造此 URL 的字符串表示形式。
|
URI
|
toURI() 返回与此 URL 等效的 URI 。
|
具体使用:
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;public class URLTest {public static void UrlTest(){try {// 创建一个URL实例URL url = new URL("http://www.imooc.com");System.out.println("协议:" + url.getProtocol());System.out.println("主机:" + url.getHost());System.out.println("授权:" + url.getAuthority());System.out.println("内容:" + url.getContent());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 ex) {ex.printStackTrace();} catch (IOException ex) {ex.printStackTrace();}catch (Exception ex){ex.printStackTrace();}}
}
3.URL转义 包含中文的URL转换
package i.publicclasslib;
/*** 汉字转换成URL码* @author CYZ**/
public class ChineseToUrl {/*** * @param s 需要转换的中文URL* @return 编译成功,返回URL码*/public static String ChineseToUrls(String s){StringBuffer sb = new StringBuffer();for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);if (c >= 0 && c <= 255) {sb.append(c);} else {byte[] b;try {//指定需要的编码类型b = String.valueOf(c).getBytes("utf-8");} catch (Exception ex) {System.out.println(ex);b = new byte[0];}for (int j = 0; j < b.length; j++) {int k = b[j];if (k < 0)k += 256;sb.append("%" + Integer.toHexString(k).toUpperCase());}}}return sb.toString();}
}
4.后续会继续更新其他内容。
java URL java.net.URL类的使用 详细介绍 URL转义 解决URL中文字符相关推荐
- JAVA中常量使用常量类或者常量接口还是使用枚举,错误代码和中文可变信息的枚举实现
文章目录 关于"JAVA中常量使用常量类或者常量接口还是使用枚举",已有定论-使用枚举,原因就不再展开了. 借助java枚举,可以在定义错误名称和代码的同时,定义中文描述信息,但是 ...
- java swing jtable分页_Swing之JTable的详细介绍
8-1:使用JTable组件: 类层次结构图: java.lang.Object --java.awt.Component --java.awt.Container --javax.swing.JCo ...
- java教程 invoke_Java中Method的Invoke方法详细介绍
这篇文章主要介绍了详解Java中Method的Invoke方法,需要的朋友可以参考下 在写代码的时候,发现从父类class通过getDeclaredMethod获取的Method可以调用子类的对象,而 ...
- java xml转义方法以及中文字符的处理
对于xml的转义最方便,最简单的方法就是直接使用apache的commons.lang jar包中的StringEscapeUtils的escapeXml方法.但该方法在commons lang 2. ...
- java lambda 局部变量_java Lambda表达式访问局部变量详细介绍
此前给大家带来了java Lambda表达式访问成员变量详细介绍,下面就要继续给大家介绍java Lambda表达式访问局部变量的内容,一起通过简单的文章来进行了解吧. 对于成员变量的访问Lambda ...
- PHP类与对象详细介绍
基本概念 class 每个类的定义都以关键字class开头,后面跟着类名,类名后面跟着一对花括号,里面包含有类的属性与方法的定义. 类名可以是任何非PHP保留字的合法标签.一个合法类型以字母或下划线开 ...
- Java的知识点21——String类、StringBuffer和StringBuilder、不可变和可变字符序列使用陷阱
String类 String 类对象代表不可变的Unicode字符序列,因此我们可以将String对象称为"不可变对象" substring()是对字符串的截取操作,但本质是读取原 ...
- java栈 类 堆_详细介绍Java中的堆和栈
栈与堆都是Java用来在RAM中寄存数据的中央.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运转时数据区,类的对象从中分配空间.这些对象经过new.newar ...
- Java二维码工具类(超详细注释)
二维码工具类 准备工作: pom.xml 引入依赖 <!-- 二维码 --> <dependency><groupId>com.google.zxing</g ...
最新文章
- emacs vim IDE
- 专访:混合云的发展趋势
- 制作Slider组件
- session一致性架构设计
- 【顶】辞职也需要辞得帅,辞得大家都开心,多为将来考虑,辞职不要急,本是好事要办好...
- 【IT】Asp.Net MVC
- 逆水寒服务器维护公告,逆水寒1月3日更新了什么 逆水寒1月3日更新维护公告
- kuangbin数学训练1
- 什么是线性同余法c语言,C语言线性同余法产生随机数
- 13.STC15W408AS单片机SPI
- Win10系统重装教程(纯净版)
- 腾讯实习生招聘之总体感悟
- Matlab符号运算(符号的创建和简单运算、函数求导、不定积分和定积分、解方程组)代码和解释
- 深度学习之残差网络原理深度刨析
- 参考文献格式字号字体_关于论文格式要求及字体大小
- QQ、微信消息定时发送/自动发送【支持发送文件】
- 基金经理研究所 | 从兴全合润看谢治宇的攻守道
- 由DBeaver与PL/SQL引发的数据库吐槽
- 14 metabase定制
- Linux基础指令的基本操作(一)
热门文章
- 剑指 Offer II 060. 出现频率最高的 k 个数字
- ProGuard的作用
- 浅谈__getattribute__与__getattr__
- 让ADSL宽带路由器更安全
- 数据分析:单元1 NumPy库入门
- HTML5期末大作业:海绵宝宝相关人物介绍
- 微信小程序开发常见问题FAQ之五
- nfc android 7.0 apk,分屏/NFC一卡通 一加3安卓7.0氢OS体验
- springboot启动错误 Could not resolve placeholder
- 差分+树状数组 线段树【P2357】 守墓人