【发布时间】:2013-05-15 20:24:01
【问题描述】:
我已将存储文件添加到我的 codenameone 应用程序中。在某些情况下,我想删除特定的存储文件并使用一些旧的过滤数据和新数据重新创建它。删除时效果不佳。
首先我在 StorageManager 类中创建清除存储文件的方法:
public void clearData(String pStorageTable){
Storage.getInstance().deleteStorageFile(pStorageTable);
}
在其他类中我使用这种方法是这样的:
// load all data of specific storage file
// ...
new DBManager().clearData(ThreeTrans.DB_NAME);
// write old data with filtering of specific ID and new data
// ...
这是写入数据的方法:
public void write(ThreeTrans pTT){
if(store == null) {
store = Storage.getInstance();
}
DB_NAME = "TT";
if(!store.exists(DB_NAME)) {
Hashtable depHash = new Hashtable();
String k = "1" + pTT.getNumber();
depHash.put(k, pTT.toString());
store.writeObject(DB_NAME, depHash);
}
else {
Hashtable depHash = (Hashtable)store.readObject(DB_NAME);
if (!depHash.containsValue(pTT.getNumber())) {
String k = String.valueOf(getLastKeyNumber());
depHash.put(k, pTT.toString());
store.writeObject(DB_NAME, depHash);
}
}
}
一开始我是用这个方法来删除存储文件的:
public void clearData(String pStorageTable){
if(store == null) {
store = Storage.getInstance();
}
for (String str : store.listEntries()) {
if(str.toLowerCase().startsWith(pStorageTable)) {
store.deleteStorageFile(str);
}
}
}
在这个问题之后这个方法变成了这个;
public void clearData(String pStorageTable){
Storage.getInstance().deleteStorageFile(pStorageTable);
}
【问题讨论】:
-
“效果不好”是什么意思?你有例外吗?您的最终数据没有满足您的所有需求?
-
无论如何它都不起作用。没有引发异常,也没有做任何事情。
-
此存储文件是否来自库?哪一个?
-
我已经添加了“ThreeTran”的名称。我用这种方式初始化存储文件: Storage store = Storage.getInstance();
-
当你使用代号时,你看到这个视频了吗? youtube.com/watch?v=Q85K-nSbc_k
标签: java-me storage lwuit codenameone