URL类
URL:统一资源定位符
URL类相关方法:
- String getFile():获取文件名称,此方法获得的名称为文件在服务器中的路径;
- URLConnection openConnection():通过URL对象打开连接,返回一个连接对象
URLConnection相关方法: - long getContentLengthLong():通过URLConnection对象获取下载文件的长度,单位是字节
- int getContentLengthLong():通过URLConnection对象获取下载文件的长度,单位是字节
- InputStream getInputStream():获取资源的输入流
使用API的传参格式
GET请求方式:协议://资源路径/资源名称?name=value&name2=value2&…
URL编码
保证传输不乱码,为保证中文不乱码,现将英文转换成 %+数字+字母的混合组成形式
URLEncode类
1.将文字转成URL编码的类
- 字符串中非西欧的字符会被转化成由%开始加两位16进制数字组成,如:%E3%46%DE…
String urlString = URLEncoder.encode("你好","UTF-8");
System.out.println(urlString);
URLDecode
2.将URL编码转换成文字的类
String keyWord = URLDecoder.decode("%4e%d5%8d","UTF-8");
System.out.println(keyWord);
XML与JSON
XML
1.xml是可扩展标记语言:对于标记的可扩展
2.xml特征:
- xml是一门独立的标记语言,与平台无关
- xml具有自我描述性
3.xml文件:.xml文件是保存XML数据的一种方式,XML数据也可以以其它方式存在,如:
(可以在内存中构建XML数据),不能将XML语言(并不是指文件)狭隘的理解成.xml文件,
XML数据通常是字符串。
4.XML作用
- 网络数据传输
- 数据存储
- 配置文件
5.XML语法格式
- 文档声明(首行)
<?xml version="1.0" encoding="utf-8"?>
- 标记(元素/标签/节点)
- xml的文档由一个一个的标记组成
- 语法:
- 开始标记:<标记名称>
- 结束标记:</标记名称>
- 标记名称命名规则:
1.不能以数字或标点符号开始
2.名称不能以"xml"(或XML,Xml,xml大小写切换的都不行)开始
3.名称区分大小写
4.名称不能包含空格,不能包含冒号(😃 - 标记内容:开始标记和结束标记中是标记内容
- 一个XML文档中,必须有且仅有一个 根标记 ,即最外层有一个且只有一个大标记扩住
- 标记可以嵌套,但不允许交叉
- 标记有子和父,兄弟,后代,祖先的称呼
- 标记名称允许重复
- 标记除了开始和结束,还有属性,标记属性的描述在开始标记中描述由
属性名=“属性值” 组成,多个属性之间用空格隔开
- 注释
注释不能在文档声明前面,不能嵌套注释
格式:<!-- 被注释文本 -->
Java解析XML
四种解析方式:SAX解析、DOM解析、JDOM解析、DOM4J解析
- 1.SAX解析:是事件驱动机制,逐行读取文件解析,当读取到标签开始/结束/属性/内容
触发事件,我们可以编写程序在这些事件发生是进行处理- 优点:分析可以立即开始,不用加载所有数据;逐行加载,节省内存,有助于读取大文件
不必加载整个文档,解析到合适的数据时可以停止解析 - 缺点:单向解析,无法定位文档层次,无法访问统一文档的不同部分的数据,
只读解析,无法修改XML文件内容
- 优点:分析可以立即开始,不用加载所有数据;逐行加载,节省内存,有助于读取大文件
- 2.DOM解析:是与平台和语言无关的解析方式,表示XML文档的官方w3c标准,分析时需要加载
整个文档和在内存中建立文档树模型,可以通过操作文档树来获取、修改、删除数据- 优点:文档加载到内存,允许对数据和结构作出更改;访问是双向的,可以在任何时候双
向解析数据 - 缺点:文件全部加载在内存,资源耗废大
- 优点:文档加载到内存,允许对数据和结构作出更改;访问是双向的,可以在任何时候双
- 3.JDOM解析:优化的DOM解析
- 优点:使用具体类而不是接口,简化了DOM的API;使用了大量Java集合,方便了程序员
- 缺点:灵活性较差,性能不是很优越
- 4.DOM4J解析:它是JDOM的一种智能分支,有许多超出基本XML文档的操作,
如集成的XPath支持、XMLSchema支持以及用于大文档或流化文档的基于事件的处理- XPath解析xml文件
- 路径表达式:
1、 / :表示从根节点开始
2、// :从发起查找的节点位置向后代节点查找
3、. :查找当前节点
4、… :查找父节点
5、@ :选择属性
属性使用方式:[@属性名=‘值’]、[@属性名>‘值’]、
[@属性名!=‘值’]、[@属性名<‘值’]
- 路径表达式:
- XPath解析xml文件
JSON
JSON:javaScript Object Notation, js对象简谱,是一种轻量级的数据交换格式
- JSON对象格式:一个对象用一个大括号表示:括号中描述对象的属性和函数。
通过健值对来描述对象的属性与函数(可以理解为大括号中包含一个个的键值对)- 格式:
- 一个对象用一个大括号表示
- 属性与值之间用冒号(:)连接,多个属性之间用(,)隔开
- 可嵌套属性中可以无限嵌套
- 格式:
GSON
- 将对象转换为json字符串:
- 引入jar包
- 使用代码转换
String json = new Gson().toJson(要转换的对象);
- 将json字符串转换为对象:
- 引入jar包
- 使用代码转换:
//参数1:要转换的json字符串 //参数2:对象类型.class 对象类型 对象名 = new Gson().fromJson(json字符串,对象类型.class);
FastJson
- 将对象转换为json字符串:
- 引入jar包
- 使用代码转换
String json = JSON.toJSONString(要转换的对象);
- 将json字符串转换为对象:
- 引入jar包
- 使用代码转换:
//参数1:要转换的json字符串 //参数2:对象类型.class 对象类型 对象名 = JSON.parseObject(json字符串,对象类型.class); 或转换为一个集合 List<对象类型> list = JSON.parseArray(json字符串,对象类型.class);