Properties
-
作用【重点】
- 用于记录一些键值对的信息,而且这些信息相互之间没有太大的关联
- 记录用户的账号密码
- JDBC的账号密码
- 用于记录一些键值对的信息,而且这些信息相互之间没有太大的关联
-
常用方法
-
加载Properties文件
- load(输入流 -> 建议使用 字符流)
-
添加数据到Properties对象中
- setProrperties(String key , String value)
-
把Properties文件写出
-
store(输出流-> 使用字符流, 说明)
package com.itiheima.demo01_properties; import java.io.FileReader; import java.io.FileWriter; import java.util.Properties; public class Demo { /* 目标: 能够结合Properties的API实现对Properties文件的操作 1. 我们需要手动创建一个properties文件 2. 往里面写入一些信息 3. 在Java程序中,读取properties文件的内容 4. 遍历文件内容 5. 添加一个新的信息进去 6. 存储到另外一个properties文件中 */ public static void main(String[] args) { // 1.我们需要先创建一个Properties对象 Properties prop = new Properties(); // 2.通过load方法,把文件的数据读取到Properties对象中 try ( FileReader fr = new FileReader("day11-Properties-XML-Log/file/info.properties"); FileWriter fw = new FileWriter("day11-Properties-XML-Log/file/info2.properties"); ) { prop.load(fr); System.out.println(prop); // {admin=admin, Mylo=mylo93010102, admin3=admin3} // 3.遍历文件内容 prop.forEach((k, v) -> { System.out.println("key : " + k + " , v : " + v); }); // 4.添加一个新的信息进去 prop.setProperty("ygw", "ygw123456"); prop.put("张三", "m123456"); // 5.存储到另外一个properties文件中 -> 先要创建一个输出流 prop.store(fw, "add User"); } catch (Exception e) { e.printStackTrace(); } } }
-
-
XML
-
作用【重点】
- 用于记录一些系统的配置信息
- 框架配置信息, MyBatis , Spring
- 用于记录一些系统的配置信息
-
解析
-
通过Dom4j框架解析
-
常用方法
-
创建SAXReader的对象
-
读取xml文件的方法
- read() -->得到一个Document对象
-
获取根标签
- getRootElement() -> Element
-
获取子标签的方法
- elements() 获取当前标签下所有的子标签
- elements(String name) 获取指定名字的所有子标签
- element(String name) 获取单个指定名字的子标签
-
获取标签中文本的方法
- elementText(String name)
- getText()
-
获取属性值的方法
-
attributeValue(String name)
package com.itiheima.demo02_xml解析; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; import java.util.List; public class Demo { /* 目标: 能够使用dom4j的框架,实现xml文件的解析 */ public static void main(String[] args) throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read("day11-Properties-XML-Log/file/contacts.xml"); System.out.println(document); Element root = document.getRootElement(); List<Element> contacts = root.elements("contact"); // 遍历所有的 contact标签 for (Element contact : contacts) { // 获取属性 String id = contact.attributeValue("id"); String vip = contact.attributeValue("vip"); // 获取下面的子标签 /* Element name = contact.element("name"); String nameValue = name.getText();*/ String name = contact.elementText("name"); String gender = contact.elementText("gender"); String email = contact.elementText("email"); System.out.println("id :" + id); System.out.println("vip :" + vip); System.out.println("name :" + name); System.out.println("gender :" + gender); System.out.println("email :" + email); System.out.println("--------------------------------"); } } }
-
-
-
-
把程序的内容写出到xml文件中
- 手动拼接数据到StringBuilder中,然后再通过输出流输出
- 使用Dom4j提供的技术
- 先要创建一个Document对象
- DocumentHelper
- 再创建根标签
- 再给根标签创建属性/子标签
- 在使用一个输出流输出内容
- XMLWriter
- 先要创建一个Document对象
-
约束
-
作用
- 约束xml文件写的内容
-
分类
-
dtd
- 只约束内容,不约束类型
-
xsd schema
-
约束内容,也约束类型
package com.itiheima.demo03_xml写入; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; import java.io.FileWriter; public class Demo02 { public static void main(String[] args) throws Exception { // 我们也需要先创建一个Document对象 Document doc = DocumentHelper.createDocument(); // 我们再给Document对象绑定一个根标签 Element root = doc.addElement("students"); // 给根标签创建子标签 Element s1 = root.addElement("student"); // 给子标签添加属性 s1.addAttribute("id", "A22030303"); // 给子标签的子标签增加数据 s1.addElement("name").addText("张三"); s1.addElement("age").addText("23"); s1.addElement("address").addText("广州"); // 输出流写出Document对象 XMLWriter writer = new XMLWriter(new FileWriter("day11-Properties-XML-Log/file/students2.xml"), OutputFormat.createPrettyPrint()); writer.write(doc); writer.close(); } }
-
-
-
Log
- 作用
- 记录系统的操作、异常
- 使用步骤
- \1. 导包3个jar,接口的jar , 核心jar , classic的jar
- \2. 在src下引入 logback.xml文件
- \3. 创建对象
- Logger log = LoggerFactory.getLogger(xxx.class);
- 级别
- ALL
- 全开启
- OFF
- 关闭
- trace
- debug
- info
- warn
- error
- ALL
package com.itiheima.demo04_log;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Demo {
public static final Logger logger = LoggerFactory.getLogger(Demo.class);
public static void main(String[] args) {
while (true) {
try {
int a = 10 / 0;
} catch (Exception e) {
// System.out.println("这里出现了异常:" + e.getMessage());
logger.info("这里出现了异常:" + e.getMessage());
logger.warn("11111");
}
}
}