Properties类是唯一几个可以作用于IO的集合。
一、Properties储存数据和遍历y
1.常用方法
Proerties 是Map的子类,HashTable的子类
- 二、Properties 类的常用方法
- 1.setProperty(String key,String value) 类似于 put(Key key,Value value)
- 2.getProperty(String key) 类似于 get(Key key)
- 3.Set stringPropertyNames() 返回 key集合相当于 keySet
package Java学习.Java高级.IO.Properties类.Properties储存数据和遍历;
import java.util.Properties;
/**
* * 一、顶级父类Map的常用方法:
* * 1. 增: V map.put( K keu,V value)
* * 1.1 K 不存在:返回空
* * 1.2 K存在: 返回 被替换的 V value
* * 2. 删: V map.remove(K key)
* * 3. 查:V map.get(K key)
* * 4. 是否包含指定键: map.containsKey( K key)
* * 5.获取键到Set集合: map.keySet()
* * 6.获取键值对象到Set: map.entrySet()
* 二、Properties 类的常用方法
* 1.setProperty(String key,String value) 类似于 put(Key key,Value value)
* 2.getProperty(String key) 类似于 get(Key key)
* 3.Set<String> stringPropertyNames() 返回 key集合相当于 keySet
*
*/
public class Main {
public static void main(String[] args) {
Properties properties = new Properties();
properties.setProperty("张三","13");
properties.setProperty("李四","14");
properties.setProperty("王五","15");
properties.setProperty("张三","23");//和Map一致,同Key会覆盖.
for (String key : properties.stringPropertyNames()) {
System.out.println("key: "+key+"----- value:"+properties.getProperty(key));
}
System.out.println("同Map 和 MapTable类似,无序.");
}
}
Run:
key: 李四----- value:14
key: 张三----- value:23
key: 王五----- value:15
同Map 和 MapTable类似,无序.
Process finished with exit code 0
二、用于IO的2个方法store写,load读
1.总结
- ---------------------1.store()----------
- 一、2种不同的数据,Writer和InputStream,
- comment 为注释,通常为 “” 空字符串
- 1.void store(Writer writer ,String comment)
-
写入字节,可不可中文,中文必然乱码
- 2.void store(InputStream inputStream ,String comment)
-
写入字符,可中文,推荐使用
- 二、步骤
- 1.创建对象
- 2.添加数据 张三,李四,王五
- 3.创建Writer对象
- 4.使用 properties.store(writer,"");储存数据
- 5.关闭writer.close()
- ---------------------------2.load()--------------------------------
- 一、 load(Reader reader)
- 2种不同的数据,和 store使用一致,建议使用 Reader
- 二、使用步骤:
- 1.对象
- 2.Reader
- 3.load读取,键值文件。储值到对象里,不用返回
- 4.Reader
- 5.遍历properties输出
- 三、注意:
- 1.储值的文件中,键值的链接符号默认为,= 、空格
- 2, # 井号为注释
- 3.键值默认字符串,不用加 “” 引号
2.代码
package Java学习.Java高级.IO.Properties类.store写入和load读取方法;
import java.io.*;
import java.util.Properties;
/**
* ---------------------1.store()----------
* 一、2种不同的数据,Writer和InputStream,
* comment 为注释,通常为 "" 空字符串
* 1.void store(Writer writer ,String comment)
* 写入字节,可不可中文,中文必然乱码
* 2.void store(InputStream inputStream ,String comment)
* 写入字符,可中文,推荐使用
* 二、步骤
* 1.创建对象
* 2.添加数据 张三,李四,王五
* 3.创建Writer对象
* 4.使用 properties.store(writer,"");储存数据
* 5.关闭writer.close()
* ---------------------------2.load()--------------------------------
* 一、 load(Reader reader)
* 2种不同的数据,和 store使用一致,建议使用 Reader
* 二、使用步骤:
* 1.对象
* 2.Reader
* 3.load读取,键值文件。储值到对象里,不用返回
* 4.Reader
* 5.遍历properties输出
* 三、注意:
* 1.储值的文件中,键值的链接符号默认为,= 、空格
* 2, # 井号为注释
* 3.键值默认字符串,不用加 "" 引号
*
*/
public class Main {
public static void main(String[] args) throws IOException {
System.out.println("----------properties.store()写入----------");
//1.
Properties properties = new Properties();
//2.
properties.setProperty("张三","13");
properties.setProperty("李四","14");
properties.setProperty("王五","15");
//3.Writer
String url ="D:\\Program Files\\JetBrains\\test1\\Lab\\src\\Java学习\\Java高级\\IO\\Properti" +
"es类\\store写入和load读取方法\\嫌疑人.txt";
Writer writer = new FileWriter(url);
//4.store
properties.store(writer,"Criminal Suspect List");
//5.writer.close()
writer.close();
System.out.println("---------2.properties.load()读取--------");
//properties 对象
Properties properties1 = new Properties();
//2.writer 对象
Reader reader = new FileReader(url);
//3.硬盘取值load(Reader)到内存中
properties1.load(reader);
//4.关闭输出流读文件流
reader.close();
//5.遍历输出
for (String key : properties1.stringPropertyNames()) {
System.out.println("key: "+key+"------value: "+properties1.getProperty(key));
}
}
}
Run:
----------properties.store()写入----------
---------2.properties.load()读取--------
key: 李四------value: 14
key: 张三------value: 13
key: 王五------value: 15
Process finished with exit code 0