电脑装配网

Java集合-Properties

 人阅读 | 作者xiaofeng | 时间:2023-07-07 05:20

Properties(java.util.Properties)类,跟Map的key和value都为String类型比较相似,Properties类可以将 c key和 value键值对写道磁盘的properties文件中,然后可以再次读出来。本文讲述 Properties常用的机制。

创建Properties实例

为了使用Properties类,则必须使用Properties的实例,可以通过构造函数创建:

Properties properties = new Properties();

设置Properties

可以通过setProperty()方法设置property (key - value):

properties.setProperty("email", "john@doe.com");

设置了email为john@doe.com。

获取Properties

可以通过getProperty()获取对应key的值:

String email = properties.getProperty("email");

移除Properties

可以通过remove()方法移除指定的键值对,参数是key:

properties.remove("email");

迭代Properties

可以通过key迭代Properties :

Properties properties = new Properties();properties.setProperty("key1", "value1");properties.setProperty("key2", "value2");properties.setProperty("key3", "value3");Iterator keyIterator = properties.keySet().iterator();while(keyIterator.hasNext()){ String key = (String) keyIterator.next(); String value = properties.getProperty(key); System.out.println(key + " = " + value );}

上面例子输出结果:

key1 = value1key2 = value2key3 = value3

存储Properties到文件

可以通过store()方法将Properties的key-value存储到Properties文件中并且可以读出来:

Properties properties = new Properties();properties.setProperty("property1", "value1");properties.setProperty("property2", "value2");properties.setProperty("property3", "value3");try(FileWriter output = new FileWriter("data/props.properties")){ properties.store(output, "These are properties");} catch (IOException e) { e.printStackTrace();}

Property文件编码

Properties文件的默认代码ISO-8859-1(Latin-1),然而我们常用的是 UTF-8编码,可以通过FileWriter构造函数的第二个参数指定具体的编码格式:

try(FileWriter output = new FileWriter("data/props.properties", Charset.forName("UTF-8"))){ properties.store(output, "These are properties");} catch (IOException e) { e.printStackTrace();}

Property文件格式

Properties文件中每一行的格式是key=value:

#These are properties#Thu Jul 04 21:29:20 CEST 2019property2=value2property1=value1property3=value3

#开头的是注释。

加载文件的数据到Properties

可以通过Properties的load() 方法将文件的数据加载到Properties:

Properties properties = new Properties();try(FileReader fileReader = new FileReader("data/props.properties")){ properties.load(fileReader);} catch (IOException e) { e.printStackTrace();}

加载Properties文件指定编码

load()默认加载编码是ISO-8859-1 (Latin-1),如果需要使用其他格式,例如UTF-8,可以在使用 FileReader的第二个参数指定 UTF-8加载文件:

try(FileReader fileReader = new FileReader("data/props.properties", Charset.forName("UTF-8"))){ properties.load(fileReader);} catch (IOException e) { e.printStackTrace();}

存储Properties中的数据到XML文件

Properties同样可以把数据存储到XML,调用storeToXML()方法:

Properties properties = new Properties();properties.setProperty("property1", "value1");properties.setProperty("property2", "value2");properties.setProperty("property3", "value3");try(FileOutputStream output = new FileOutputStream("data/props.xml")){ properties.storeToXML(output, "These are properties");} catch (IOException e) { e.printStackTrace();}

Property XML文件编码

Properties XML property 文件默认的编码UTF-8,如果需要使用其他编码格式则使用第三个参数例如ISO-8859-1:

try(FileOutputStream output = new FileOutputStream("data/props.xml")){ properties.storeToXML(output, "These are properties", Charset.forName("ISO-8859-1"));} catch (IOException e) { e.printStackTrace();}

XML Property文件格式

Properties对象存储到 XML文件格式如下:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "

https://blog.csdn.net/cgsyck/article/details/108449964


文章标签:

本文链接:『转载请注明出处』