Java的特殊文件和日志技术
Properties
xxx.properties文件中存储的都是一系列的键值对形式的数据,格式为
键 = 值
,它在Java程序中的操作,本质上是一个特殊的Map集合,我们可以通过对Properties集合的操作向文件写入和读取一些数据
- 构造器
Properties properties = new Properties()
- 读取文件数据特殊的方法
1.load(字节输入流/字符输入流)
通过字节/字符输入流,读取Properties文件中键值对的数据
注意:操作文件之前一定要检查本项目的字符集一样,具体操作如下
File -> Settings -> Editor -> File Encodings
代码及其演示
public class Demo01 {
public static void main(String[] args) throws Exception {
Properties properties = new Properties();
// 通过字节(字符)输入流,读取Properties文件中的键值对数据
properties.load(new FileReader("D:\\IDEA\\idea\\Boke\\JavaSE\\src\\特殊文件_日志技术\\file\\test.properties"));
Set<String> keys = properties.stringPropertyNames();
for (String key : keys) {
System.out.println(key+" = "+properties.getProperty(key));
}
}
}
getProperty(String key)
根据键获取值(同Map集合中的get方法)
注意:Properties集合对象没有用load()
方法开启读取文件的话无法使用此方法读取文件中键对应的值
public class Demo01 {
public static void main(String[] args) throws Exception {
Properties properties = new Properties();
// 通过字节(字符)输入流,读取Properties文件中的键值对数据
properties.load(new FileReader("D:\\IDEA\\idea\\Boke\\JavaSE\\src\\特殊文件_日志技术\\file\\test.properties"));
String name = properties.getProperty("name");
System.out.println(name);
}
}
Set<String> stringPropertyNames()
获取集合中全部键的集合(同Map集合中的keySet方法)
注意:Properties集合对象没有用load()
方法开启读取文件的话无法使用此方法读取文件中键对应的值
public class Demo01 {
public static void main(String[] args) throws Exception {
Properties properties = new Properties();
// 通过字节(字符)输入流,读取Properties文件中的键值对数据
properties.load(new FileReader("D:\\IDEA\\idea\\Boke\\JavaSE\\src\\特殊文件_日志技术\\file\\test.properties"));
Set<String> keys = properties.stringPropertyNames();
System.out.println(keys);
}
}
- 写入Properties文件特殊的方法
setProperty(String key,String value)
向集合中添加键值对数据store(OutputStream/Writer ,String comments)
把键值对数据通过字节/字符输出流写入到指定路径的Properties文件中
public class Demo02 {
public static void main(String[] args) throws Exception {
Properties properties = new Properties();
// 通过字节/字符输出流把键值对数据写入到Properties文件中
properties.setProperty("likeFood","烧鸡");
properties.setProperty("tool","赤兔马");
properties.store(new FileWriter("D:\\IDEA\\idea\\Boke\\JavaSE\\src\\特殊文件_日志技术\\file\\test.properties",true),
"三国");
}
}
XML
XML文件是一种特殊的文件,我们一般用来做项目的配置文件,如SpringBoot项目中的
application.XML
文件,里面配置一些我们项目的所需要的依赖、第三方接口所需的登录账号,如阿里云的oss云服务存储秘钥、七牛云存储的账号密码等等,还有就是SpringBoot项目中所用的Mybatis框架,框架的XML文件映射也是使用到XML文件,所以XML文件对于我们Java开发是密不可分的
以下是Mybatis框架的XML文件映射展示
- XML文件的特点
- XML中的"<标签名>"称为一个标签或一个元素,一般都是成对出现的
- XML中的标签可以自己定义,所以XML文件也叫做可扩展标记语言,但前提是必须正确的嵌套
- XML文件中只能存在一个根标签
- XML中的标签可以拥有属性
- 如果一个文件中放置的是XML格式的数据,这个文件就是XML文件,后缀一般要写成.xml
- XML的语法规则
- XML文件的后缀名为:.xml,文档声明必须是第一行
- 注释格式:<!-注释内容->
- 常用的特殊字符转义符号
转义字符 | 作用 |
---|---|
< | 小于号 |
> | 大于号 |
& | &与 |
' | 单引号 |
" | 双引号 |
- 关于XML文件原生的解析和写入我们这里不做过多介绍,因为有现成封装的API框架可以直接解析和写入XML数据
日志技术
什么是日志呢?日志简单点来说就是日记,只不过这个日记是系统来帮我们来记录,日志在一个项目中几乎是必备的技术,它可以记录什么时候什么人做了什么事,也可以记录我们使用系统用户的喜好,这样更方便我们对系统的优化,最重要的一点是,当我们开发的系统崩溃时,我们可以查询日志来排查和分析bug,日志通常是一个文件,不过我们开发中一般把日志记录在数据库中,使用注解
@Sl4fj
开启日志的记录
这里所讲述的日志仅仅作为了解即可,后面我们会用到注解来真正的使用日志技术
- 日志级别
日志 | 作用 | 级别 |
---|---|---|
trace | 追踪,指明程序运行的轨迹 | 1(最低级别) |
debug | 调试,实际应用中一般将其作为最低级别,而trace则使用得更少 | 2 |
info | 输出重要的运行信息,数据连接、网络连接、IO操作等,使用较多 | 3 |
warn | 警告信息,可能会发生的问题,使用较多 | 4 |
error | 错误信息,使用较多 | 5(最高级别) |