考虑存储的最简单方法是将其视为平面文件系统(没有目录/文件夹)。
当在 RMS 之上运行时,此文件系统抽象会为您无缝映射到 RMS 数据库。
请注意init()
Codename One 中的 Storage 不再需要,在 LWUIT 下它只执行基本初始化,并且名称通常被忽略。
Storage 类有几个方法:
InputStream createInputStream(String name)
创建给定存储源文件的输入流
OutputStream createOutputStream(String name)
使用给定名称创建到存储的输出流
boolean exists(String name)
如果给定的存储文件存在则返回 true
String[] listEntries()
列出存储文件的名称
您可以使用它们来存储和检查数据是否存在。但是,您也可以使用以下两种方法在不使用输入/输出流的情况下将复杂对象存储在存储中:
Object readObject(String name)
从存储中读取对象,如果对象不存在则返回 null
boolean writeObject(String name, Object o)
将给定对象写入存储,假设它是可外部化类型或支持的类型之一
因此,要模拟像 byte[] 存储这样的东西,你可以这样做:
Vector p = new Vector();
byte[] myData = ...;
p.addElement(myData);
p.addElement(additionalData);
Storage.getInstance().writeObject("myStore", p);
然后将其读为:
Vector p = (Vector)Storage.getInstance().read("myStore");
// p will be null if nothing was written