我想阅读一些属性文件。
为此,我创建了一个小程序,该程序可以读取,写入并更新此属性文件。

现在有人说属性文件应该只读取一次,这意味着在加载类时,它应该读取一次,而不是对每个键读取多次。

因此,我必须在静态块中读取属性文件。

现在,我怀疑是否要在属性文件中添加任何新条目,是否会将其加载到新条目中?

请建议我这是设计加载属性文件的正确方法。

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;
 }

10-07 18:17