永久存储在Java中的变量,稍后访问和编辑
A variable to be stored in Java permanently, access and edit it later
假设有一个变量
int a = 10;
当我再次 运行 程序并访问数据时,我以某种方式访问它时是一样的。然后我可以改变它,假设
a = a + 6;
之后,除非我将其更改为其他值,否则该值保持不变。
有没有办法做类似的事情?
注意:不想使用文件和/或外部数据库。
没有。程序状态仅在执行期间存在。
如果您希望它的状态在执行之间保持不变,您必须以某种方式将 a
的值存储在您的应用程序之外。
如果您不想使用文件或数据库,您可以使用 Java preferences API。
您也可以use environment variables,但这很棘手。
下载 Java 首选项 API:https://docs.oracle.com/javase/8/docs/technotes/guides/preferences/index.html
然后输入:
import java.util.prefs.*;
public class Example {
public static final int a = 10;
public void savePreference(int value) {
Preferences prefs = Preferences.userNodeForPackage(Example.class);
prefs.put(a, value);
}
public int readPreference() {
Preferences prefs = Preferences.userNodeForPackage(Example.class);
return prefs.get(a, "default");
}
public void main (String args[]){
// Read
myValue = readPreferences();
// Modify
myValue = myValue + 6;
// Save
savePreferences(myValue);
}
}
希望对您有所帮助
对于像我这样的新手来说再多一点。感谢Employee
import java.util.prefs.Preferences;
public class DataClass {
public void createPreference(String name, int value) {
Preferences prefs = Preferences.userNodeForPackage(DataClass.class);
if (prefs.getInt(name, -1) == -1) {
prefs.putInt(name, value);
System.out.println("Created For you, "+name+" with value: "+value);
} else {
System.out.println("Already Exist");
}
}
public int readPreference(String name) {
Preferences prefs = Preferences.userNodeForPackage(DataClass.class);
return prefs.getInt(name, -1);
}
public void updatePreference(String name) {
Preferences prefs = Preferences.userNodeForPackage(DataClass.class);
int val = prefs.getInt(name, -1);
if (val != -1) {
val++;
prefs.remove(name);
prefs.putInt(name, val);
System.out.println("New Value of "+name+" is: "+prefs.getInt(name, -1));
}
}
public void removePreference(String key) {
Preferences prefs = Preferences.userNodeForPackage(DataClass.class);
if(prefs.getInt(key, -1) != -1){
prefs.remove(key);
System.out.println("Removed: "+key);
}else{
System.out.println("No Such Data in: "+key);
}
}
}
假设有一个变量
int a = 10;
当我再次 运行 程序并访问数据时,我以某种方式访问它时是一样的。然后我可以改变它,假设
a = a + 6;
之后,除非我将其更改为其他值,否则该值保持不变。
有没有办法做类似的事情?
注意:不想使用文件和/或外部数据库。
没有。程序状态仅在执行期间存在。
如果您希望它的状态在执行之间保持不变,您必须以某种方式将 a
的值存储在您的应用程序之外。
如果您不想使用文件或数据库,您可以使用 Java preferences API。
您也可以use environment variables,但这很棘手。
下载 Java 首选项 API:https://docs.oracle.com/javase/8/docs/technotes/guides/preferences/index.html
然后输入:
import java.util.prefs.*;
public class Example {
public static final int a = 10;
public void savePreference(int value) {
Preferences prefs = Preferences.userNodeForPackage(Example.class);
prefs.put(a, value);
}
public int readPreference() {
Preferences prefs = Preferences.userNodeForPackage(Example.class);
return prefs.get(a, "default");
}
public void main (String args[]){
// Read
myValue = readPreferences();
// Modify
myValue = myValue + 6;
// Save
savePreferences(myValue);
}
}
希望对您有所帮助
对于像我这样的新手来说再多一点。感谢Employee
import java.util.prefs.Preferences;
public class DataClass {
public void createPreference(String name, int value) {
Preferences prefs = Preferences.userNodeForPackage(DataClass.class);
if (prefs.getInt(name, -1) == -1) {
prefs.putInt(name, value);
System.out.println("Created For you, "+name+" with value: "+value);
} else {
System.out.println("Already Exist");
}
}
public int readPreference(String name) {
Preferences prefs = Preferences.userNodeForPackage(DataClass.class);
return prefs.getInt(name, -1);
}
public void updatePreference(String name) {
Preferences prefs = Preferences.userNodeForPackage(DataClass.class);
int val = prefs.getInt(name, -1);
if (val != -1) {
val++;
prefs.remove(name);
prefs.putInt(name, val);
System.out.println("New Value of "+name+" is: "+prefs.getInt(name, -1));
}
}
public void removePreference(String key) {
Preferences prefs = Preferences.userNodeForPackage(DataClass.class);
if(prefs.getInt(key, -1) != -1){
prefs.remove(key);
System.out.println("Removed: "+key);
}else{
System.out.println("No Such Data in: "+key);
}
}
}