前言
特殊文件作为了解内容即可,日志技术可能会比较常用。
特殊文件
Properties属性文件
概述
Properties属性文件中的数据都只能是键值对,键不能重复且文件后缀一般是 .properties 结尾的。可以用来存储有关系的键值对数据。可以用Map里的Properties集合可以读取properties文件里的数据
Properties
- Properties是一个Map集合(键值对集合),但是一般不会当集合使用。
- 核心作用:Properties是用来代表属性文件的,通过Properties可以读写属性文件里的内容。
构造器 | 说明 |
public Properties() | 用于构建Properties集合对象(空容器) |
常用方法 | 说明 | |
读取 | public void load( InputStream is) | 通过字节输入流,读取属性文件里的键值对数据 |
public void load(Reader reader ) | 通过字符输入流,读取属性文件里的键值对数据 | |
public String getProperty(String key) | 根据键获取值(其实就是get方法的效果) | |
public Set<String> stringPropertyNames () | 获取全部键的集合( 其实就是ketSet方法的效果) | |
写出 | public 0bject setProperty(String key, String value ) | 保存键值对数据到Properties对象中去。 |
public void store(OutputStream OS, String comments ) | 把键值对数据,通过字节输出流写出到属性文件里去 | |
public void store(Writer W, String comments) | 把键值对数据,通过字符输出流写出到属性文件里去 |
XML文件
概述
XML全称EXtensible Markup Language,可扩展标记语言(可以直接在浏览器中打开)
本质是一种数据的格式,可以用来存储复杂的数据结构,和数据关系。
XML的特点
●XML中的 “<标签名>”称为一个标签或一个元素, 一般是成对出现的。
●XML中的标签名可以自己定义 (可扩展) ,但必须要正确的嵌套。
●XML中只能有一个根标签。
●XML中的标签可以有属性(属性由键和值组成)。
●如果一个文件中放置的是XML格式的数据,这个文件就是XML文件,后缀一般要写成 .xml。
XML的创建就是创建一个XML类型的文件,要求文件的后缀必须使用xml,如hello _world.xml
MXL的语法规则
●XML文件的后缀名为:xml,文档声明必须是第一行
●XML中可以定义注释信息:<!-- 注释内容-->
●XML中书写”<”、“&"等,可能会出现冲突,导致报错,此时可以用如下特殊字符替代。
●XML中可以写一个叫CDATA的数据区:<![CDATA[ ..内... ]]>, 里面的内容可以随便写。
XML的作用和应用场景
●本质是一种数据格式,可以存储复杂的数据结构,和数据关系。
●应用场景: 经常用来做为系统的配置文件;或者作为-种特殊的数据结构,在网络中进行传输。
Dom4j
简介
解析XML文件:使用程序读取XML文件中的数据
用自己写原始的IO流代码来解析XML,难度较大!也相当繁琐!有很多开源的,好用的,解析XML的框架。最知名的是:Dom4j(第三方研发的)
步骤
需求:使用Dom4j把一个XML文件的数据进行解析
分析:
①下载Dom4j框架,官网下载。
②在项目中创建一个文件夹: lib
③将dom4j-2.1.3.jar文件复 制到lib文件夹
④在jar文件上点右键,选择Add as Library ->点击0K
⑤在类中导包使用
解析思想
SAXReader解析器将整个文件解析到内存中去变成一个Document(整个文档)对象,可以通过Document获取Element(元素/标签)及其Attribute(属性)和子元素、文本。
只能从上到下一级一级解析
常用API
●SAXReader:Dom4j提供的解析器,可以认为是代表整个Dom4j框架
构造器/方法 | 说明 |
public SAXReader( ) | 构建Dom4j的解析器对象 |
public Document read(String url) | 把XML文件读成Document对象 |
public Document read( InputStream is ) | 通过字节输入流读取XML文件 |
●Document
方法名 | 说明 |
Element getRootElement() | 获得根元素对象 |
●Element提供的方法
方法名 | 说明 |
public String getName() | 得到元素名字 |
public List<Element> elements( ) | 得到当前元素下所有子元素 |
public List<Element> elements (String name) | 得到当前元素下指定名字的子元素返回集合 |
public Element element(String name ) | 得到当前元素下指定名字的子元素,如果有很多名字相同的返回第一个 |
public String attributeValue(String name) | 通过属性名直接得到属性值 |
public String elementText(子元素名) | 得到指定名称的子元素的文本 |
public String getText() | 得到文本 |
写XML文件
不建议用dom4j做(太过繁琐),推荐直接把程序里的数据拼接成XML格式,然后用IO流写出去!
约束
约束XML文件的书写:就是限制XML文件只能按照某种格式进行书写,可以使用约束文档。
约束文档:有DTD文档与Schema文档这两类。专门用来限制xml书写格式的文档,比如:限制标签、属性应该怎么写。
DTD的使用(了解)
需求:利用DTD约束文档,约束一个XML文件的编写。
①:编写DTD约束文档,后缀必须是 .dtd
②:在需要编写的XML文件中导入该DTD约束文档
③:然后XML文件,就必须按照DTD约束文档指定的格式进行编写,否则报错!
DTD可以约束XML文件的编写但不能约束具体的数据类型
schema的使用(了解)
可以约束XML文件的编写、和数据类型
需求:利用schema文档约束,约束一个XML文件的编写。
①:编写schema约束文档,后缀必须是 .xsd,具体的形式到代码中观看。
②:在需要编写的XML文件中导入该schema约束文档
③:按照约束内容编写XML文件的标签。
日志技术
概述
- 日志:通常就是一个文件,里面记录的是程序运行过程中的各种信息。
- 日志技术:可以将系统执行的信息,方便的记录到指定的位置(控制台、文件中、数据库中)。还可以随时以开关的形式控制日志的启停,无需侵入到源代码中去进行修改。
体系结构

- 日志框架:牛人或者第三方公司已经做好的实现代码,后来者直接可以拿去使用。
- 日志接口:设计日志框架的-套标准,日志框架需要实现这些接口。
- 因为对Commons Logging接口不满意,有人就搞了SLF4j;因为对Log4j的性能不满意,有人就搞了Logback。
- Logback是基于slf4j的日志规范实现的框架。
Logback
概述
Logback日志框架官方网站:https://logback.qos.ch/index.html
Logback8志框架有以下几个模块:
- logback-core:基础模块,是其他两个模块依赖的基础(必须有)
- logback-classic:完整实现了slf4j API的模块(必须有)
- logback-access:与Tomcat和Jetty等Servlet容器集成,以提供HTTP访问日志的功能(可选,以后再接触)
想使用Logback8志框架,至少需要在项目中整合如下三个模块:
- slf4j-api:日志接口
- logback-core
- logback-classic
Logback快速入门
需求:
●使用Logback日志框架, 纪录系统的运行信息。
实现步骤
①导入Logback框架到项目中去。
slf4j-api: 8志接口 logback-core logback-classic
②将Logback框架的核心配置文件logback.xml直接拷贝到src目录下(必须是src下)。
③创建Logback框架提供的Logger对象,然后用Logger对象调用其提供的方法就可以记录系统的日志信息。
public static final Logger LOGGER = LoggerFactory.getLogger(“日志名称");
注意:对Logback 8志框架的控制,都是通过其核心配置文件logback.xml来实现的。
核心配置文件logback.xml
核心配置文件logback.xml是对Logback日志框 架进行控制的。
日志的输出位置、输出格式的设置
●通常可以设置2个输出日志的位置:一个是控制台、一个是系统文件中
开启日志(ALL),取消日志(OFF)
Logback设置日志级别
日志级别指的是日志信息的类型,日志都会分级别,常见的日志级别如下(优先级依次升高) :
日志级别 | 说明 |
trace | 追踪,指明程序运行轨迹 |
debug | 调试,实际应用中一般将其作为最低级别,而trace则很少使用 |
info | 输出重要的运行信息,数据连接、网络连接、IO操作等等,使用较多 |
warn | 警告信息,可能会发生问题,使用较多 |
error | 错误信息,使用较多 |
设置输出日志级别:
只有日志的级别是大于或等于核心配置文件配置的日志级别,才会被记录,否则不记录。