public static void main(String[] args) throws IOException {
//demoOne();
//demoTwo();
//demoThree();
}
/**
* load(OutputStream os);//写入文件内容
*/
private static void demoThree() throws IOException {
Properties pro = new Properties();
pro.setProperty("name", "张三");
pro.setProperty("age", "19");
FileOutputStream fis = new FileOutputStream(new File("D:\\a.properties"));
OutputStreamWriter isr = new OutputStreamWriter(fis, "UTF-8");
BufferedWriter br = new BufferedWriter(isr);
pro.setProperty("name", "王五");
pro.setProperty("age", "18");
//pro.store(br, null);//写入流,是否添加备注(建议不要写入中文,一般为null)
//pro.store(isr, null);//也可以传入OutputStream输出流
br.close();
System.out.println("写入完成");
}
/**
* load(InputStream in)
* load(Reader re)
* name=赵子龙 age=12,properties的文件内键值对形式 键=值 不能有空格对个键值对使用换行进行书写
* 注释:键之前加#号 #name=12
*/
private static void demoTwo() throws IOException {
Properties pro = new Properties();
//我这个文件存储的编码格式是UTF-8为了解决乱码问题所以使用转换流进行读取
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("D:\\a.properties")), "UTF-8"));//提高效率
pro.load(br);
System.out.println(pro);
br.close();
System.out.println("读取完成");
}
/**
* Properties
* 继承Hashtable,但是没有泛型约束,该类也有put方法,但是不建议直接调用,可以通过以下方法来赋值取值
* 和IO完美结合,可以对数据持久性存储
* 存储键值对
* setProperty(String key, String value)和Map中put一样,但是参数只能传递Srting类型,底层也是调用的父类
* 根据键获取值
* getProperty(String key)
*
*/
private static void demoOne(){
Properties pro = new Properties();
pro.setProperty("name", "赵子龙");
pro.setProperty("age", "18");
String name = pro.getProperty("name");
String age = pro.getProperty("age");
System.out.println(name + " " + age);
System.out.println(pro);
Set<String> set = pro.stringPropertyNames();//返回所有键集的Set视图
for(String s : set){
System.out.println(s);
}
System.out.println("读取完成");
}
Java properties文件的输入(读)输出(写)
最新推荐文章于 2024-07-14 09:22:16 发布