Propertie类
1.Propertie类的介绍
Properties 类表示了一个持久的属性集!
什么是集: 它是一个集合
什么是属性集: 其他就是键值对,本质就是一个Map集合
什么是持久的: Properties类具有和硬盘交互的方法
2.构造方法
public Properties(); 创建一个空属性的集合
public class PropertiesDemo01 {
public static void main(String[] args) {
//1.创建一个Properties对象
Properties ps = new Properties();
System.out.println(ps);
//注意:Properties不需要写泛型,默认键和值都是String
}
}
3.基本保存数据的方法
public String setProperty(String key,String value);//添加/修改属性,类似于map的put方法
public String getProerty(String key);//根据属性名获取属性值,类似于map的get方法
public Set stringPropertyNames();//获取集合中所有的属性名,类似于map的keySet
public class PropertiesDemo01 {
public static void main(String[] args) {
//1.创建一个Properties对象
Properties ps = new Properties();
System.out.println(ps);
//2.添加数据
ps.setProperty("java","100");//相当于map的put
ps.setProperty("php","80");//相当于map的put
ps.setProperty("c++","99");//相当于map的put
ps.setProperty("python","98");//相当于map的put
System.out.println(ps);
//3.根据属性名获取属性值
String propertyValue = ps.getProperty("java"); //相当于map的get
System.out.println(propertyValue);
//4.获取所有属性名的集合
Set<String> propertyNames = ps.stringPropertyNames();//相当于map的keySet
System.out.println(propertyNames);
}
}
4.与流相关的方法
持久相关的方法,就是和流相关的方法
public void store(OutputStream/Writer out,String 注释内容); //保存数据
public void load(InputStream/Reader in);//读取数据
public class PropertiesDemo02 {
public static void main(String[] args) throws IOException {
//1.创建一个Properties对象
Properties ps = new Properties();
//2.添加数据
ps.setProperty("java","100");//相当于map的put
ps.setProperty("php","80");//相当于map的put
ps.setProperty("c++","99");//相当于map的put
ps.setProperty("python","98");//相当于map的put
//3.保存数据
ps.store(new FileOutputStream("1.txt"),"");
//4.再创建一个Properties
Properties ps1 = new Properties();
System.out.println(ps1);
//5.读取数据
ps1.load(new FileInputStream("1.txt"));
System.out.println(ps1);
}
}
注意:
Properties类保存的文件一般会起名叫xxx.properties(规范!!)
ResourceBundle工具类
1.ResourceBundle类的介绍
ResourceBundle这是一个抽象类,其子类PropertyResourceBundle可以用于读取.properties后缀的文件
PropertyResourceBundle可以直接读取"src"目录下的.properties文件,并且我们读取文件时,只需要写"文件名",不需要写文件的后缀名
2.ResourceBundle类对象的创建
public class ResourceBundleDemo {
public static void main(String[] args) {
//properties文件在src目录下
//读取时路径怎么写?? 不好写
//ResourceBundle 专门用于读取src目录下(默认就是从src目录查找文件)
//1.如何获取ResourceBundle对象
ResourceBundle bundle = ResourceBundle.getBundle("1");
System.out.println(bundle);
}
}
3.ResourceBundle读取配置文件操作
public class ResourceBundleDemo {
public static void main(String[] args) {
//properties文件在src目录下
//读取时路径怎么写?? 不好写
//ResourceBundle 专门用于读取src目录下(默认就是从src目录查找文件)
//1.如何获取ResourceBundle对象
ResourceBundle bundle = ResourceBundle.getBundle("1");
System.out.println(bundle);
//2.通过ResourceBundle的getString
String value1 = bundle.getString("username");
System.out.println(value1);
String value2 = bundle.getString("password");
System.out.println(value2);
}
}