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