在J2ME中进行文件随机访问

时间:2010-09-25 19:57:45

标签: java-me random-access

J2ME是否有类似RandomAccessFile类的东西,或者有没有办法模拟这个特定的(随机访问)功能?

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

  1. 为索引键(K)读取2个字节,为索引值(V)读取另外2个所需数据类型
  2. 从文件开头跳过V字节以寻找索引键K的数据开始的文件位置
  3. 阅读数据
  4. 利润:)
  5. 在程序流程中多次发生这种情况。

    嗯,我正在研究在J2ME上做同样事情的可能性,虽然我承认我对整个Java事情都很陌生,但我似乎无法找到{{3}以外的任何东西。 } {({3}})类没有基本的搜索/跳转到我需要的字节/返回位置函数。

    那么,我的机会是什么?

1 个答案:

答案 0 :(得分: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();
}

我不想使用marke / reset方法,我认为最好从val位置保存偏移而不是从文件的开头保存,这样你就可以跳过这些方法了。我认为他们在某些设备上有问题。

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