我会使用 java preferences
将我的对象存储在 .jar
中。
我将我的对象转换为字符串并存储它。
我用这段代码来保存它:
Preferences.userNodeForPackage(Centrale.class).put("myValue", myString);
我用这段代码来阅读它:
String myString = "";
myString = prefs.get("myValue", myString);
我在保存大字符串时发现错误。错误是:
java.lang.IllegalArgumentException: Value too long
java.util.prefs.AbstractPreferences.put(AbstractPreferences.java:245)
我该如何解决?
最佳答案
您需要将字符串分成 Preference.MAX_VALUE_LENGTH 的长度。我建议您创建与 myValue 相关的 myValue.1、myValue.2 等。加载时,您只需将值串在一起。
这是一些代码:
String value = "....";
int size = value.length();
if (size > Preference.MAX_VALUE_LENGTH) {
cnt = 1;
for(int idx = 0 ; idx < size ; cnt++) {
if ((size - idx) > Preference.MAX_VALUE_LENGTH) {
pref.put(key + "." + cnt, value.substring(idx,idx+Preference.MAX_VALUE_LENGTH);
idx += Preference.MAX_VALUE_LENGTH;
} else {
pref.put(key + "." + cnt, value.substring(idx);
idx = size;
}
}
} else {
pref.put(key, value);
}
key 大小也有限制,即 Preference.MAX_KEY_LENGTH。
还有一点需要说明,您可以使用首选项键方法重新创建对象。
关于java - Java 中的首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27558399/