2

J2ME 是否有类似于RandomAccessFile类的东西,或者有什么方法可以模拟这个特定的(随机访问)功能?

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

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

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

嗯,我正在研究在 J2ME 上做同样的事情的可能性,虽然我承认我对整个 Java 事物很陌生,但我似乎无法找到除InputStream( DataInputStream) 类之外的任何东西具有我需要的基本搜索/跳至字节/返回位置功能。

那么,我的机会有多大?

4

1 回答 1

2

你应该有这样的东西

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();
}

我不喜欢使用 mark/reset 方法,我认为最好保存 val 位置的偏移量而不是文件开头的偏移量,这样您就可以跳过这些方法。我认为他们在某些设备上存在一些问题。

还要注意,我不建议打开 600 KB 的文件,它会在许多低端设备上崩溃应用程序,您应该将此文件拆分为多个文件。

于 2010-09-25T20:23:34.280 回答