目录
2.1使用Properties把键值对数据写出到属性文件里去:
1.Properties属性文件:
1.1使用Properties读取属性文件里的键值对数据:
package specialFile;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Properties;
import java.util.Set;
public class SpecialFIle {
public static void main(String[] args) throws IOException {
//创建Properties的对象,(键值对集合,空容器)
Properties pro = new Properties();
System.out.println(pro);
//加载属性文件中的键值对数据对象到Properties对象中,即pro
pro.load(new FileReader("E:\\javaproject\\src\\user.properties"));
System.out.println(pro);
System.out.println(pro.getProperty("admin1"));
//用set集合接收Properties的对象的键
Set<String> names = pro.stringPropertyNames();
//遍历全部数据
for (String key : names) {
//创建String类型对象value,接收键对应的值
String value = pro.getProperty(key);
//输出数据
System.out.println(key+"-->>"+value);
}
}
}
2.1使用Properties把键值对数据写出到属性文件里去:
package specialFile;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Properties;
import java.util.Set;
//"E:\\javaproject\\src\\user.properties"
public class SpecialFIle {
public static void main(String[] args) throws IOException {
//创建Properties的对象,(键值对集合,空容器)
Properties properties = new Properties();
properties.setProperty("wwx1","lr");
properties.setProperty("wwx","nynu");
properties.setProperty("lr","mnnu");
properties.store(new FileWriter("E:\\javaproject\\src\\user1.properties"),"i set informations");
}
}
2.xml文件:
3.xml解析:
4.写数据到xml
5.约束xml文件:
6.日志技术:
1.日志技术的体系结构:
2.Logback快速入门:
2.1代码实例 :
2.1LogTest.java:
package logSkill;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LogTest {
public static Logger LOGGER = LoggerFactory.getLogger("LogTest");
public static void main(String[] args) {
try {
LOGGER.info("除法方法开始运行~");
cu(10, 0);
LOGGER.info("除法方法运行成功!");
} catch (Exception e) {
LOGGER.error("除法方法出错了!");
}
}
public static void cu(int a, int b) {
LOGGER.debug("a:" + a);
LOGGER.debug("b:" + b);
int c = a / b;
LOGGER.info("a/b:" + c);
// System.out.println("a/b:" + c);
}
}
2.2Logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--
CONSOLE :表示当前的日志信息是可以输出到控制台的。
-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!--输出流对象 默认 System.out 改为 System.err-->
<target>System.out</target>
<encoder>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度
%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %c [%thread] : %msg%n</pattern>
</encoder>
</appender>
<!-- File是输出的方向通向文件的 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
<charset>utf-8</charset>
</encoder>
<!--日志输出路径-->
<file>E:/log/wwx-data.log</file>
<!--指定日志文件拆分和压缩规则-->
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--通过指定压缩文件名称,来确定分割文件方式-->
<fileNamePattern>D:/log/itheima-data-%i-%d{yyyy-MM-dd}-.log.gz</fileNamePattern>
<!--文件拆分大小-->
<maxFileSize>1MB</maxFileSize>
</rollingPolicy>
</appender>
<!--
1、控制日志的输出情况:如,开启日志,取消日志
-->
<root level="debug">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE" />
</root>
</configuration>