2016-01-21 123 views
-1

如何在每次程序启动时都不会将“重置”设置为默认值的Java变量中保存一个变量?Java中的静态变量?

例如:

int counter; 
counter = counter + 1 

,现在我想“计数器”每一个节目开始时间是不同的。

我该怎么办?

+1

在程序退出(或变量操作)时将其序列化并在程序启动时对其进行反序列化。 –

回答

3

不幸的是,对你而言,这不是什么静态手段

对于自己和他人,着想,了解静态的手段,看看What does the 'static' keyword do in a class?

你所要求的是,在每次退出程序持续的值并加载它,当节目的一种方式开始。您没有提供足够的信息来确定您是否希望它位于运行该应用程序的每台计算机上(即需要数据库),或者该值是否仅存储在本地计算机上。

对于只保留在本地机器上,你可以做的是使用Java属性来保存退出时的值并在开始时加载该值。有关如何使用属性,请参阅https://docs.oracle.com/javase/tutorial/essential/environment/properties.html,因为有如何执行此操作的示例。请参见下面的话:

设置对象的属性

下面的Java代码执行 一节中所描述的前两个步骤:加载默认的属性和加载 想起属性:

// create and load default properties 
Properties defaultProps = new Properties(); 
FileInputStream in = new FileInputStream("defaultProperties"); 
defaultProps.load(in); 
in.close(); 

// create application properties with default 
Properties applicationProps = new Properties(defaultProps); 

// now load properties 
// from last invocation 
in = new FileInputStream("appProperties"); 
applicationProps.load(in); 
in.close(); 

有对谷歌不少的成果,使用性质,其中之一是http://crunchify.com/java-properties-file-how-to-read-config-properties-values-in-java/这应该让你开始..

或者,你可以像其他人所建议的那样,序列化到一个文件并读回,再次退出并启动。

对于持久化数据库以便任何有权访问它的人都可以读取该值,可以查看Java持久性API。 http://docs.oracle.com/javaee/6/tutorial/doc/bnbpz.html

+1

谢谢。有帮助。 – Doorian