day11-Properties、XML、Log【JAVA】

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
  • 约束

    • 作用

      • 约束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
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");
            }
        } 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值