作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 J2ME 构建一个移动应用程序,我发现我写入 RecordStore 的数据可以在程序仍在运行时访问,但在退出并重新启动后会丢失。没有抛出异常,数据只是丢失。
更新:感谢大家的建议。我在 Windows 7 上使用 NetBeans。我不确定它使用的是我之前安装的 WTK 版本还是在其他地方安装的另一个版本。我检查了我的 WTK 文件夹中是否有 Pavel 所写的文件,但找不到它们。现在我正在测试需要在手机上持久化的功能以及模拟器中的其他所有内容,但如果能够在模拟器中测试所有内容当然会更好。
private RecordStore recordStore = null;
public MyMIDlet() {
readStuff(); // output: nothing found in recordStore :(
saveStuff();
readStuff(); // output: stuff
}
private void readStuff() {
try {
recordStore = RecordStore.openRecordStore(REC_STORE, true);
int n = recordStore.getNumRecords();
String stuff;
if (n == 0) {
stuff = "nothing found in recordStore :(";
}
else {
stuff = new String(recordStore.getRecord(1));
}
System.out.println(stuff);
}
catch (Exception e) {
System.out.println("Exception occured in readStuff: " + e.getMessage());
}
finally {
if (recordStore != null) {
try {
recordStore.closeRecordStore();
}
catch (Exception e) {
// ignore
}
}
}
}
private void saveStuff() {
try {
recordStore = RecordStore.openRecordStore(REC_STORE, true);
int n = recordStore.getNumRecords();
byte[] stuff = "stuff".getBytes();
recordStore.addRecord(stuff, 0, stuff.length);
} catch (Exception e) {
System.out.println("Exception occured in saveStuff: " + e.getMessage());
} finally {
if (recordStore != null) {
try {
recordStore.closeRecordStore();
} catch (Exception e) {
// ignore
}
}
}
}
最佳答案
如果您使用 Sun WTK,它会在其“appdb”文件夹中创建一个名为“in.use”的文件:
C:\WTK25\appdb\DefaultColorPhone\in.use
如果您以不寻常的方式关闭模拟器(例如杀死一个进程),它不会删除它,并且下次运行模拟器时,它会创建临时文件夹来存储数据:
C:\WTK25\appdb\temp.DefaultColorPhone1
以这种方式启动时,它应该在控制台中打印:“Running with storage root temp.DefaultColorPhone1”。
我修复了它,在我的“.bat”文件中包含一行,用于每次模拟器运行时删除“in.use”文件。但同时运行多个模拟器时应该小心。
关于java - J2ME RecordStore 中的数据不会跨 session 持续存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1704509/
我是一名优秀的程序员,十分优秀!