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
在这里插入图片描述

原创文章 132 获赞 11 访问量 4711

猜你喜欢

转载自blog.csdn.net/jarvan5/article/details/105998307
今日推荐