J2me有类似的东西吗 RandomAccessFile 类,还是有任何方法可以模仿此特定的(随机访问)功能?

问题是:我有一个相当大的二进制数据文件(〜600 kb),并想创建一个用于使用该数据的移动应用程序。该数据的格式是自制的,并且包含许多索引块和数据块。在其他平台(例如PHP或C)上阅读数据通常是这样的:

  1. 读取索引键的2个字节(K),另外2个索引值(V)对于所需的数据类型
  2. 跳过 V 字节从文件的开头开始寻找索引密钥数据的文件位置 K 开始
  3. 阅读数据
  4. 利润 :)

这在程序流程中多次发生。

嗯,我正在调查在J2me上做同样的事情的可能性,尽管我承认我是整个Java的新事物,但我似乎无法找到任何东西 InputStream (DataInputStream)课程没有我需要的基本寻求/跳过字节/返回位置函数。

那么,我的机会是什么?

有帮助吗?

解决方案

你应该有这样的东西

try {
    DataInputStream di = new DataInputStream(is);
    di.marke(9999);
    short key = di.readShort();
    short val = di.readShort();
    di.reset();
    di.skip(val);
    byte[] b= new byte[255];
    di.read(b);
}catch(Exception ex ) {
    ex.printStackTrace();
}

我宁愿不使用Marke/Reset方法,我认为最好从文件开始时从Val位置保存偏移量,以便您可以跳过这些方法。我认为他们在某些设备上存在SOM问题。

还有一个注意,我不建议打开一个600 kb的文件,它将在许多低端设备上崩溃,您应该将此文件拆分为多个文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top