Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在应用程序运行时更改属性文件_Java_File - Fatal编程技术网

Java 在应用程序运行时更改属性文件

Java 在应用程序运行时更改属性文件,java,file,Java,File,我在属性文件中有一个属性。说“x”。 在我的Java类中,我在循环中使用这个x。因此,第一次执行循环时,它从属性文件加载,第二次执行循环时,它从内存中获取值,而无需每次加载props文件。现在,如果我想更改属性文件中x的值,我可以在不重新启动应用程序的情况下加载该值吗?如果是,如何进行 在.net中,会话启动是否有Java等价物?我听说.net中的Session_OnStart就是为了这个目的您可以在每次请求变量时加载和解析属性 class RefreshingProperties extend

我在属性文件中有一个属性。说“x”。 在我的Java类中,我在循环中使用这个x。因此,第一次执行循环时,它从属性文件加载,第二次执行循环时,它从内存中获取值,而无需每次加载props文件。现在,如果我想更改属性文件中x的值,我可以在不重新启动应用程序的情况下加载该值吗?如果是,如何进行


在.net中,会话启动是否有Java等价物?我听说.net中的Session_OnStart就是为了这个目的

您可以在每次请求变量时加载和解析属性

class RefreshingProperties extends Properties {

  private final File file;

  public RefreshingProperties (File file) throws IOException { 
    this.file = file;
    refresh ();
  }

  private void refresh () throws IOException {
    load (new FileInputStream (file));
  }

  @Override
  public String getProperty (String name) {
    try { refresh (); }
    catch (IOException e) {}
    return super.get (name);
  }
}

您可以调整此选项,使其仅在特定时间段到期时重新加载

另请参见您可以使用前端屏幕来更改此值。然后,在发生更改时也更新会话…请描述您试图实现的功能。这听起来像是一个更好的解决方案。如果我必须在我的类中使用它,我是否需要加载RefreshingProperties而不是属性文件?我的意思是,除了Properties prop=new Properties(),RefreshingProperties prop=new RefreshingProperties()?还有,当我继续重新加载prop文件时,是否会出现性能问题?是的,显然您需要使用该类来利用其功能。是的,很明显,与不读取和解析文件相比,读取和解析文件会带来资源和性能成本。好的。。谢谢还有一个问题。HttpSessionListener的用途是什么?它与.net中的会话启动类似吗?会话侦听器在web会话创建和销毁时接收回调。我对.NET一无所知