java.util.Properties;
读取文件
通过Properties
类对象中的方法load(InputStream)
,从.properties
文件对应的文件输入流中,加载属性列表到Properties
类对象,然后getProperty(String key)
得到所要的值。
Properties
类对象需要InputStream
对象进行读取文件,获取InputStream
有多种方法:
InputStream is = new FileInputStream(filePath);
InputStream is = Class.getResourceAsStream(path);
InputStream is = ClassLoader.getResourceAsStream(path);
public class ReadFile {
public static void main(String[] args) {
InputStream stream=ReadFile.class.getResourceAsStream("/test.properties");
Properties prop = new Properties();
try{
// 从文件输入流中,加载属性列表到Properties类对象
prop.load(stream);
// 下面这种不用load(),以解决中文乱码
//Resource[] resources = new Resource[]{new InputStreamResource(stream)};
//for (Resource resource : resources) {
//PropertiesLoaderUtils.fillProperties(prop, new EncodedResource(resource, "UTF-8"));
//}
stream.close();
// 读取 属性
String name = prop.getProperty("name");
int age = Integer.valueOf(prop.getProperty("age"));
String note = prop.getProperty("note");
System.out.println(zkConnectionStrs);
System.out.println(dubboserverport);
System.out.println(test);
} catch(Exception e){
System.out.println(e);
}
}
}
写文件
通过setProperty(String key, String value)
方法,设置属性到Properies
类对象中。
然后,调用Properties
类对象中的store(OutputStream out, String comments)
方法,把Properties
类对象的属性列表保存到输出流中。
public class WriteFile {
public static void main(String[] args) {
Properties prop = new Properties();
try{
FileOutputStream out = new FileOutputStream("write.properties", true);//true表示追加打开
prop.setProperty("name", "zhang"); // 设置属性
prop.setProperty("age", "20"); // 设置属性
prop.store(out, "我是注释"); // Properties类对象的属性列表保存到输出流中
out.close();
} catch(Exception e){
System.out.println(e);
}
}
}