在这篇文章中,我们将学习如何在java中读写属性(properties)文件。 属性文件在java应用程序中用作配置文件,用于存储密钥及其对应的值。
示例属性文件currency_codes.properties的内容如下所示。
currency_codes.properties -
USD=United States dollar
EUR=Euro
GBP=Pound sterling
CNY=Chinese yuan
INR=Indian rupee
JPY=Japanese yen
RUB=Russian ruble
创建属性文件
java.util.Properties类将键及其值作为字符串存储在列表中。 Properties类的store()方法将属性列表(键值对)写入输出流。 以下是一个演示的示例。
文件:PropertiesWriteExample.java -
package com.yiibai.tutorial.io;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
/**
* @author yiibai
*/
public class PropertiesWriteExample {
public static void main(String[] args) {
File file = new File("config_mail.properties");
Properties prop = null;
FileOutputStream fileOutputStream = null;
try {
prop = new Properties();
fileOutputStream = new FileOutputStream(file);
// Add key-value elements to properties list
prop.setProperty("mail.from" "abcd@yiibai.com");
prop.setProperty("mail.to" "xyz@yiibai.com");
prop.setProperty("mail.smtp" "10.10.10.10");
prop.setProperty("mail.smtp.port" "250");
// Write properties list to output stream
prop.store(fileOutputStream "This is an sample properties file.");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fileOutputStream != null) {
fileOutputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
执行上面示例代码,得到以下结果:
#This is an sample properties file.
#Sat Nov 12 22:35:54 IST 2016
mail.smtp=10.10.10.10
mail.smtp.port=250
mail.from=abcd@yiibai.com
mail.to=xyz@yiibai.com
读取属性文件
Properties类的load()方法从输入流中读取属性列表。 在以下示例中,我们将演示如何读取:config_mail.properties。
文件:PropertiesReadExample.java -
package com.yiibai.tutorial.io;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
/**
* @author yiibai
*/
public class PropertiesReadExample {
public static void main(String[] args) {
File file = new File("config_mail.properties");
Properties prop = null;
FileInputStream fileInputStream = null;
try {
prop = new Properties();
fileInputStream = new FileInputStream(file);
// Load property list
prop.load(fileInputStream);
// Print property list
System.out.println("mail.from=" + prop.getProperty("mail.from"));
System.out.println("mail.to=" + prop.getProperty("mail.to"));
System.out.println("mail.smtp=" + prop.getProperty("mail.smtp"));
System.out.println("mail.smtp.port=" + prop.getProperty("mail.smtp.port"));
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fileInputStream != null) {
fileInputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
执行上面示例代码,得到以下结果 :
mail.from=abcd@yiibai.com
mail.to=xyz@yiibai.com
mail.smtp=10.10.10.10
mail.smtp.port=250