我想阅读一些属性文件。 为此我创建了一个小程序,它读取,写入并更新了这个属性文件。
现在有些人说属性文件应该只读一次,这意味着当加载类时,它应该读取一次,而不是每次读取多次。
所以我必须读取静态块内的属性文件。
现在我怀疑如果我对属性文件进行任何新的输入,是否会加载新条目?
请建议我设计加载属性文件的正确方法。
public class Parser {
private String path;
private static Properties prop = new Properties();
public Parser(String path) throws IOException{
this.path = path;
load();
}
public Model readPropertiesFile(){
Model model = new Model();
model.setName(prop.getProperty("name"));
return model ;
}
public void createOrUpdatePropertiesFile(Model model){
prop.setProperty("name", model.getName());
}
public void setPath(String path){
this.path = path;
}
public String getPath(){
return path ;
}
public void load() throws IOException{
File file = new File(path);
if(!file.exists()){
file.createNewFile();
System.out.println("File created..");
}
prop.load(new FileInputStream(file));
}
答案 0 :(得分:0)
你可以尝试这种方式;
从类路径加载属性文件
public static Properties load(String propsName) throws Exception {
Properties props = new Properties();
URL url = ClassLoader.getSystemResource(propsName);
props.load(url.openStream());
return props;
}
加载属性文件
public static Properties load(File propsFile) throws IOException {
Properties props = new Properties();
FileInputStream fis = new FileInputStream(propsFile);
props.load(fis);
fis.close();
return props;
}