java properties 权限_java面向对象编程3(4) Properties【重点详解】

Properties【重点详解】

一. 引言&概述

为什么要用Properties:为了更专业地保存程序的配置信息。

配置信息:程序运行时必须要信息

程序A:

用户名=zhangsan

密码=xxxx

IP=192.168.36.11

权限=管理员

码表=utf-8

Properties 类表示了一个持久的属性集,可以和Map集合一样存储键值对(HashMap)

持久: 把数据从内存中保存到硬盘上

Keyvalue都是String

二. 入门案例:添加键值对

Properties 把数据持久保存在硬盘上。

相当于HashMap,无序,有key  value,key和value都是String

/*

* 入门案例:为Properties添加键值对

* HashMap

* */

@Test

public void run1(){

//1、创建对象 key value都是String

Properties p = new Properties();

//2、添加键值对

//2.1、添加键值对:setProperty(key,value) 相当于map put(key,value) ,效果相同

p.setProperty("k1","v1");

p.setProperty("k2","v2");

p.setProperty("k2","v3");

//2.2、获取键值对:getProperty(key) 相当于map get(key),效果相同

String k2 = p.getProperty("k2");

System.out.println(k2);

System.out.println(p);

//3、遍历

//3.1、把Properties,变成Set集合 集合中保存的是所有的key

Set set = p.stringPropertyNames();

//3.2、遍历Set集合

for (String key : set) {

System.out.println(key+"----------"+p.getProperty(key));

}

}

三. 进阶案例1:写出数据操作-字节流

为了写出配置文件

/*

* 向Properties中保存键值对,把键值对写出成为配置文件

* 字节:万能

* 字符

* */

@Test

public void run1() throws Exception {

//1、创建Properties对象,保存数据

Properties p = new Properties();

p.setProperty("name","大哥");

p.setProperty("sex","纯爷们");

p.setProperty("age","18");

//2、创建输出流对象 扩展名必须是:.properties

FileOutputStream fos = new FileOutputStream("pd.properties");

//3、写出文件 :store 存储

p.store(fos,"这是大哥的信息");

//4、关流

fos.close();

}

四. 进阶案例2:读取数据操作-字节流

为了读取配置文件

/*

* 从Properties文件中读取数据

* */

@Test

public void run2() throws Exception {

//1、创建Properties对象(准备读取数据)

Properties p = new Properties();

//2、创建输入流, 读取的文件扩展名必须是:.properties

FileInputStream fis = new FileInputStream("pd.properties");

//3、读取 load 加载/读取

p.load(fis);

System.out.println(p);

//4、关流

fis.close();

}

五.​​​​​​​ 进阶案例3:字节流字符流对比

用字节流写出:

/*

* 用字符流读

* */

@Test

public void run3() throws Exception {

//1、创建Properties对象(准备读取数据)

Properties p = new Properties();

//2、创建输入流, 读取的文件扩展名必须是:.properties

FileReader fr = new FileReader("字节流.properties");

//3、读取 load 加载/读取

p.load(fr);

System.out.println(p);

//4、关流

fr.close();

}

/*

* 用字节流读

* */

@Test

public void run2() throws Exception {

//1、创建Properties对象(准备读取数据)

Properties p = new Properties();

//2、创建输入流, 读取的文件扩展名必须是:.properties

FileInputStream fis = new FileInputStream("字节流.properties");

//3、读取 load 加载/读取

p.load(fis);

System.out.println(p);

//4、关流

fis.close();

}

/*

* 用字节流写出

* */

@Test

public void run1() throws Exception {

//1、创建Properties对象,保存数据

Properties p = new Properties();

p.setProperty("name","大哥");

p.setProperty("sex","纯爷们");

//2、创建输出流对象 扩展名必须是:.properties

FileOutputStream fos = new FileOutputStream("字节流.properties");

//3、写出文件 :store 存储

p.store(fos,"这是大哥的信息");

//4、关流

fos.close();

}

用字符流写出:

/*

* 用字符流读

* */

@Test

public void run3() throws Exception {

//1、创建Properties对象(准备读取数据)

Properties p = new Properties();

//2、创建输入流, 读取的文件扩展名必须是:.properties

FileReader fr = new FileReader("字符流.properties");

//3、读取 load 加载/读取

p.load(fr);

System.out.println(p);

//4、关流

fr.close();

}

/*

* 用字节流读

* */

@Test

public void run2() throws Exception {

//1、创建Properties对象(准备读取数据)

Properties p = new Properties();

//2、创建输入流, 读取的文件扩展名必须是:.properties

FileInputStream fis = new FileInputStream("字符流.properties");

//3、读取 load 加载/读取

p.load(fis);

System.out.println(p);

//4、关流

fis.close();

}

/*

* 用字符流写出

* */

@Test

public void run1() throws Exception {

//1、创建Properties对象,保存数据

Properties p = new Properties();

p.setProperty("name","大哥");

p.setProperty("sex","纯爷们");

//2、创建输出流对象 扩展名必须是:.properties

FileWriter fw = new FileWriter("字符流.properties");

//3、写出文件 :store 存储

p.store(fw,"这是大哥的信息");

//4、关流

fw.close();

}

字节流写出的文件,用字节流或字符流都可以读取

字符流写出的文件,仅能用字符流读取(字节流乱码)

建议:用字节流,读取和写出

六.​​​​​​​ IDEA创建Properties文件

e3899bb757902b0000d9ef51adb6111e.png

cef985ca1a1ee2243107c28e87c6e7f6.png

今日总结:

Properties: 进行持久化保存数据的集合。 (HashMap)

持久化:把内存数据保存到硬盘上。

Key和value 都是 String字符串

setProperties(key,value);     map.put(key,value)

getProperties(key); map.get(key)

stringPropertyNames(); map.keySet();

输出流:扩展名  .properties

store(输出流对象,”说明信息”);

输入流

load(输入流对象)

字节流: 写出,任何流都能读【建议】

字符流:写出,仅能字符流

​​​​​​​

请给努力中的自己点个赞哦!

每天进步一点点`~~~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值