我想阅读一些属性文件。
为此,我创建了一个小程序,该程序可以读取,写入并更新此属性文件。
现在有人说属性文件应该只读取一次,这意味着在加载类时,它应该读取一次,而不是对每个键读取多次。
因此,我必须在静态块中读取属性文件。
现在,我怀疑是否要在属性文件中添加任何新条目,是否会将其加载到新条目中?
请建议我这是设计加载属性文件的正确方法。
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));
}
最佳答案
您可以尝试这种方式;
从类路径加载属性文件
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;
}