特殊文件:属性文件.properties
特点: 1.都只能是键值对 2.键不能重复 3.文件后缀都是以properties结尾
public static void main(String[] args) throws Exception {
//创建一个properties对象出来,键值对集合,空容器
Properties properties=new Properties();
System.out.println(properties); //打印出来是个空集合
//开始加载属性中的键值对数据到properties对象中去
properties.load(new FileReader("java01\\src\\main\\java\\lian02\\users.properties"));
System.out.println(properties); //可以将属性文件中的内容读取出来
//根据键取值
System.out.println(properties.getProperty("name"));
System.out.println(properties.getProperty("age"));
System.out.println(properties.getProperty("sex"));
//遍历全部键和值
Set<String> strings = properties.stringPropertyNames();
for (String string : strings) {
String property = properties.getProperty(string);
System.out.println(property);
}
//properties是map集合也可以用lambda表达式遍历
properties.forEach((k,v)->{
System.out.println(k+"-->"+v);}
);
}
Properties properties=new Properties();
properties.setProperty("name","liubei");
properties.setProperty("age","22");
properties.setProperty("sex","女");
properties.store(new FileWriter("java01\\src\\main\\java\\lian02\\users02.properties"),"i saved many users ");
案例 有一个user.txt 文件,查看里面是否有李芳这名同学,并将其年龄改为18岁。
public static void main(String[] args) throws Exception {
//1.加载属性的键值对文件到属性中来
Properties properties=new Properties();
//2.开始加载
properties.load(new FileReader("java01\\src\\main\\java\\lian02\\user.txt"));
//3.判断是否包含李芳这个键
if (properties.contains("李芳")){
properties.setProperty("李芳","18");
}
//4.将properties的键值对数据,重新写入到properties文件中去
properties.store(new FileWriter("java01\\src\\main\\java\\lian02\\user.txt"),"success");
}
特殊文件:XML文件
xml(可扩展标记语言)
本质是一种数据格式,可以用来存储复杂的数据结构,和数据关系
xml文件内容可以直接在浏览器中展示出来
XML中可以写一个CDATA的数据区, 快捷键输入CD +回车
如何使用程序读取XML中的数据(解析xml文件)
学会使用框架
public static void main(String[] args) throws Exception {
//创建Dom4j框架提供的解析器对象
SAXReader saxReader = new SAXReader();
//2.使用sexReader对象把需要解析的xml文件,解析成Document对象
Document document = saxReader.read("java01\\src\\main\\java\\lian02\\user.xml");
//3.从文档对象中解析xml文件的全部数据
Element rootElement = document.getRootElement(); //获取根元素
System.out.println(rootElement.getName()); //得到根元素名称
}
public static void main(String[] args) throws Exception {
//创建Dom4j框架提供的解析器对象
SAXReader saxReader = new SAXReader();
//2.使用sexReader对象把需要解析的xml文件,解析成Document对象
Document document = saxReader.read("java01\\src\\main\\java\\lian02\\user.xml");
//3.从文档对象中解析xml文件的全部数据
Element rootElement = document.getRootElement(); //获取根元素
System.out.println(rootElement.getName()); //得到根元素名称
//4.获取根元素下的全部一级子元素
List<Element> elements = rootElement.elements();
for (Element element : elements) {
System.out.println(element.getName());
}
//或者获取根元素下,指定的一级子元素
List<Element> elementss = rootElement.elements("user");
for (Element element : elementss) {
System.out.println(element.getName());
}
//或者获取当前元素下,某个子元素
//如果有很多子元素user默认获取第一个
Element user = rootElement.element("user");
System.out.println(user.elementText("name"));
//获取元素属性值信息
System.out.println(user.attributeValue("age"));
//获取所有的属性,返回一个集合
List<Attribute> attributes = user.attributes();
for (Attribute attribute : attributes) {
System.out.println(attribute.getName()+attribute.getValue());
}
//如何获取全部的文本内容,获取当前元素下的子元素文本值
System.out.println(user.elementText("name"));
System.out.println(user.elementText("地址"));
System.out.println(user.elementText("age"));
Element data = user.element("data");
System.out.println(data.getText());
System.out.println(data.getTextTrim()); //取出文本后,去除前后空格
}
了解 如何使用程序把数据写到xml文件中去