国际化程序特点:同一个程序,根据不同的语音环境选择资源文件,所有的资源文件后缀必须是"*.properties"。
Properties类的操作特点:
Properties是Hashtable的子类,主要是进行属性的操作(属性的最大特点是利用字符串设置key和value)
Properties类的定义结构:
public class Properties extends Hashtable<Object,Object>
在使用Properties类的时候不需要设置泛型类型,因为从它一开始出现,就只能够保存String,在Properties类里面,主要使用如下的操作方法
public Object setProperties(String key,String value)
以上设置属性
public String getProperties(String key):
如果key不存在,返回null。
public String getProperties(String key,String defaultValue):
如果key不存在,返回默认值
范例:属性的基本操作
public static void main(String[] args) throws Exception {
Properties pro=new Properties();
pro.setProperty("BJ", "A");
pro.setProperty("NJ", "B");
System.out.println(pro.getProperty("BJ"));
System.out.println(pro.getProperty("CJ"));
System.out.println(pro.getProperty("CCJ","C"));
}
image.png
在Properties类里面提供有数据的输出操作。
public void store(OutputStream out,String comments) throws IOException
范例:将属性信息保存在文件里
public static void main(String[] args) throws Exception {
Properties pro=new Properties();
pro.setProperty("BJ", "A");
pro.setProperty("NJ", "B");
//资源文件一般都要是*.properties对应
pro.store(new FileOutputStream(new File("E:"+File.separator+"area.properties")), "Area Info");
}
然后打开E盘,的确有area.properties.
image.png
也可以从指定的输入流中读取属性信息。
public void load(InputStream inStream) throws IOException
范例:通过文件流读取属性内容
public static void main(String[] args) throws Exception {
Properties pro=new Properties();
pro.load(new FileInputStream(new File("E:"+File.separator+"area.properties")));
System.out.println(pro.getProperty("BJ"));
}
image.png
对于属性文件(资源文件)而言,除了可以使用Properties类读取之外,也可以使用ResourceBundle类读取,这也就是将输出的属性文件统一设置的后缀为"*.properties"的原因所在。
总结:
1.资源文件的特点
key=value
key=value
2.资源文件的数据一定都是字符串
网友评论