Java IO Properties類 可以IO的集合 的總結 使用教程

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
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章