Properties类
Posted hopeyes
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Properties类相关的知识,希望对你有一定的参考价值。
Properties类
public class Properties extends Hashtable<Object,Object>
Properties
类表示了一个持久的属性集。Properties
可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
常用方法:
String getProperty(String key) |
用指定的键在此属性列表中搜索属性。 |
String getProperty(String key,String defaultValue) |
用指定的键在属性列表中搜索属性。 |
void list(PrintStream out) |
将属性列表输出到指定的输出流。 |
void list(PrintWriter out) |
将属性列表输出到指定的输出流。 |
void load(InputStream inStream) |
从输入流中读取属性列表(键和元素对)。 |
void load(Reader reader) |
按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。 |
void store(OutputStream out, String comments) |
以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。 |
void store(Writer writer, String comments) |
以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。 |
Object
setProperty(String key,String value) |
Object
setProperty(String key,String value) |
1 import java.util.Map; 2 import java.util.Properties; 3 import java.util.Set; 4 5 public class PropertiesDemo { 6 public static void main(String[] args) { 7 Properties pro=new Properties(); 8 pro.put("001", "张三"); 9 pro.put("002", "李四"); 10 pro.put("003", "王五"); 11 Set<Object> keySet = pro.keySet(); 12 for(Object key:keySet) { 13 Object value=pro.get(key); 14 System.out.println(key+"="+value); 15 } 16 System.out.println("-----------"); 17 18 Set<Map.Entry<Object, Object>> entrySet = pro.entrySet(); 19 for(Map.Entry<Object, Object> entry:entrySet) { 20 Object key=entry.getKey(); 21 Object value=entry.getValue(); 22 System.out.println(key+"="+value); 23 } 24 25 } 26 }
2、Properties与IO流结合
(1)与输出流结合使用:
1 import java.io.FileNotFoundException; 2 import java.io.PrintWriter; 3 import java.util.Properties; 4 5 public class PropertiesIODemo { 6 public static void main(String[] args) throws FileNotFoundException { 7 //创建属性列表 8 Properties pro=new Properties(); 9 //添加映射关系 10 pro.setProperty("001", "张三"); 11 pro.setProperty("002", "李四"); 12 pro.setProperty("003", "王五"); 13 //创建打印流对象 14 PrintWriter pw=new PrintWriter("pro.txt"); 15 16 pro.list(pw); 17 18 pw.close(); 19 20 } 21 }
结果:在项目根目录下生成pro.txt文件:
(2)与输入流结合使用:
1 import java.io.FileNotFoundException; 2 import java.io.FileReader; 3 import java.io.IOException; 4 import java.util.Properties; 5 6 public class PropertiesIODemo { 7 public static void main(String[] args) throws IOException { 8 //method(); 9 //创建属性列表 10 Properties pro=new Properties(); 11 //创建输入流对象 12 FileReader fr=new FileReader("pro.txt"); 13 pro.load(fr); 14 fr.close(); 15 System.out.println(pro); 16 } 17 }
结果:
list只能接收打印流,store和load所有流都可以接收
1 import java.io.FileWriter; 2 import java.io.IOException; 3 import java.util.Properties; 4 5 public class PropertiesIODemo { 6 public static void main(String[] args) throws IOException { 7 //创建属性列表 8 Properties pro=new Properties(); 9 //添加映射关系 10 pro.setProperty("001", "张三"); 11 pro.setProperty("002", "李四"); 12 pro.setProperty("003", "王五"); 13 //创建输出流对象 14 FileWriter fw=new FileWriter("prop.txt"); 15 pro.store(fw, "hello"); 16 fw.close(); 17 } 18 }
结果:
以上是关于Properties类的主要内容,如果未能解决你的问题,请参考以下文章
如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用
elasticsearch代码片段,及工具类SearchEsUtil.java
使用ResourceBundle 类读取 src 下的 xxx.properties 文件
Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段