Properties集合中的方法load与缓冲流的原理
Properties集合中的方法load
package Demo_Properties; import java.io.*; import java.util.Properties; import java.util.Set; /* java.util.Properties集合extends Hashtable<k, v> implements Map<k, v>Properties类表示了一个持久的属性集。Properties可保存在流中或从流中加载。Properties集合是一个唯—和i0流相结合的集合 可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储 可以使用Properties集合中的方法Load,把硬盘中保存的文件(键值对),读取到集合中使用 属性列表中每个键及其对应值都是一个字符串。 Properties集合是一个双列集合, key和value黑认都是字符串 */ public class Demo01_Properties { public static void main(String[] args) throws IOException { show03(); } /* 可以使用Properties集合中的方法Load,把硬盘中保存的文件(键值对),读取到集合中使用 void load ( Inputstream instream) void load ( Reader reader) 参数: Inputstream instream:字节输入流,不能读取含有中文的键值对 Reader reader :字符输入流,能读取含有中文的键值对 使用步骤: 1.创建Properties集合对象 2.使用Properties集合对象中的方法Load读取保存键值对的文件 3.遍历Properties集合 注意: 1.存储键值对的文件中,键与值默认的连接符号可以使用=空格(其他符号) 2.存储键值对的文件中,可以使用#进行注释,被注释的键值对不会再被读取 3.存储键值对的文件中,键与值默认都是字符串,不用再加引号 */ private static void show03() throws IOException { //创建 Properties集合对象 Properties pis = new Properties(); //2.使用Properties集合对象中的方法Load读取保存键值对的文件 pis.load(new FileReader("a.txt")); //3.遍历Properties集合 Set<String> set = pis.stringPropertyNames(); for (String key : set){ String property = pis.getProperty(key); System.out.println(key+"="+property); } } /* 可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储void store( outputstream out,string comments ) void store (luriter writer,string comments)参数: OutputStream out :字节输出流,不能写入中文writer writer:字符输出流,可以写中文 String comments :注释,用来解释说明保存的文件是做什么用的 不能使用中文,会产生乱码,黑认是unicode编码 一般使用""空字符串 使用步骤: 1.创建Properties集合对象,i添加数据 2.创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地 3.使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储 4.释放资源 */ private static void show02() throws IOException { Properties pes = new Properties(); //使用setProperty往集合中添加数据 pes.setProperty("马可波罗","152"); pes.setProperty("安琪拉","106"); pes.setProperty("鲁班大师","103"); /* //2.创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地 FileWriter fileWriter = new FileWriter("q.txt"); //3.使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储 pes.store(fileWriter,"save data"); //4.释放资源 fileWriter.close(); */ pes.store(new FileOutputStream("q.txt"),""); } /* 使用Properties集合存储数据,遍历取出Properties集合中的数据 Properties集合是一个双列集合,key和value黑认都是字符串 Properties集合有一些操作字符串的特有方法 object setProperty (String key,String value)调用Hashtable 的方法 put。 String getProperty (String key)通过key找到value值,此方法相当于MNap集合中的get(key)方法 Set<String stringPropertyNames()返回此属性列表中的键集,其中该键及其对应值是字符串,,此方法相当于MNap集合中的keyset方法 */ private static void show01() { //创建 Properties集合对象 Properties pes = new Properties(); //使用setProperty往集合中添加数据 pes.setProperty("马可波罗","152"); pes.setProperty("安琪拉","106"); pes.setProperty("鲁班大师","103"); //pes.put(1,true); //使用stringPropertyNames把Properties集合中的键取出,存储到一个set集合中 Set<String> set = pes.stringPropertyNames(); //遍历Set集合,取出Properties 集合的每一个键 for (String key : set){ String value = pes.getProperty(key); System.out.println(key+"="+value); } } }
缓冲流
昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强
概述
缓冲流,也叫高效流,是对4个基本的Filexxx流的增强,所以也是4个流,按照数据类型分类:
字节缓冲流:BufferedInputStream , Bufferedoutputstream
字符缓冲流:BufferedReader, BufferedwriterI
缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。
作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)