java之Properties类详解
下文笔者讲述java中Properties类简介说明,如下所示
例:创建Properties集合添加键值对
例
Properties类简介及特点说明
Properties: 是Hashtable集合子类 Properties是线程安全的 Properties对象是一个键值对结构 Properties的特点: 1.继承于Hashtable 是线程安全的键值对存储结构 2.Properties可保存在流中或从流中加载 3.只能保存字符串的键值对
构造器
Properties() 创建一个无默认值的空属性列表 Properties(Properties defaults) 创建一个带有指定默认值的空属性列表
| 用指定的键在此属性列表中搜索属性。 | |
| String getProperty(String key, String defaultValue) | 用指定的键在属性列表中搜索属性 |
| Object setProperty(String key, String value) | 调用 Hashtable 的方法 put |
public class PropTest {
public static void main(String[] args) {
//属性集合类不支持泛型
Properties prop = new Properties();
//添加键值对
prop.setProperty("name", "zhangsan");
prop.setProperty("age", "10");
prop.setProperty("gender", "male");
//打印prop
System.out.println(prop);
//输出{age=10, name=zhangsan, gender=male}
//获取键值对
String name = prop.getProperty("name");
String age = prop.getProperty("age");
String gender = prop.getProperty("gender");
System.out.println(name + age + gender);
//输出zhangsan10male
}
}
例:将Properties集合中的键值对写入到文件中
方法一:使用遍历方式写入
public class PropTest2 {
public static void main(String[] args) {
//属性集合类不支持泛型
Properties prop = new Properties();
//添加键值对
prop.setProperty("name", "zhangsan");
prop.setProperty("age", "10");
prop.setProperty("gender", "male");
PrintWriter pw = null;
try {
//创建自动刷新字符打印流对象
pw = new PrintWriter(new FileWriter("prop.txt"),true);
//拿到prop中所有的key
Set keys = prop.keySet();
//遍历所有的key
for (Object obj : keys) {
//将obj强转成String
String key = (String)obj;
//通过key获取到相对应的值
String value = prop.getProperty(key);
//key和值写入到文件中
pw.println(key + "=" + value);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if(pw != null)
pw.close();
}
}
}
| void list(PrintStream out) | 将属性列表输出到指定的输出流 |
| void list(PrintWriter out) | 将属性列表输出到指定的输出流。 |
使用Properties中list()方法写入文件
public class PropTest3 {
public static void main(String[] args) {
//属性集合类不支持泛型
Properties prop = new Properties();
//添加键值对
prop.setProperty("name", "zhangsan");
prop.setProperty("age", "10");
prop.setProperty("gender", "male");
PrintWriter pw = null;
try {
//创建自动刷新字符打印流对象
pw = new PrintWriter(new FileWriter("prop1.txt"),true);
//使用list()方法,把prop中的键值对写入到文件中
prop.list(pw);
} catch (IOException e) {
e.printStackTrace();
}finally {
if(pw != null)
pw.close();
}
}
}
| void load(InputStream inStream) | 从输入流中读取属性列表(键和元素对) |
| void load(Reader reader) | 按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。 |
例
把文件中的数据传入到Properties集合中
使用Properties中的load()方法
fr= new FileReader("src/prop.properties");
public class PropTest4 {
public static void main(String[] args) {
//属性集合类不支持泛型
Properties prop = new Properties();
FileReader fr = null;
try {
fr = new FileReader("prop.txt");
//把文件中的字符读取到prop集合中
prop.load(fr);
//获取prop中的属性
String name = prop.getProperty("name");
String age = prop.getProperty("age");
String gender = prop.getProperty("gender");
//打印
System.out.println(name + age + gender);
//打印zhangsan10male
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(fr != null)
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
| void store(OutputStream out, String comments) |
以适合使用 load(InputStream) 方法加载到 Properties 表中的格式 将此 Properties 表中的属性列表(键和元素对)写入输出流 |
| void store(Writer writer, String comments) |
以适合使用 load(Reader) 方法的格式 将此 Properties 表中的属性列表(键和元素对)写入输出字符 |
例: 把properties集合按属性格式存储到输出流文件中 使用properties中的store()方法
public class PropTest6 {
public static void main(String[] args) {
//属性集合类不支持泛型
Properties prop = new Properties();
//添加键值对
prop.setProperty("name", "zhangsan");
prop.setProperty("age", "10");
prop.setProperty("gender", "male");
FileWriter fw = null;
try {
fw = new FileWriter("prop2.txt");
//把prop存储到输出流中,第二个参数是注释
prop.store(fw, "---");
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(fw != null)
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


