Java me J2ME中的文件随机访问

Java me J2ME中的文件随机访问,java-me,random-access,Java Me,Random Access,J2ME是否有类似于类的东西,或者是否有任何方法来模拟这个特定的(随机访问)功能 问题是:我有一个相当大的二进制数据文件(~600KB),我想创建一个移动应用程序来使用这些数据。该数据的格式是自制的,包含许多索引块和数据块。在其他平台(如PHP或C)上读取数据通常如下所示: 为索引键(K)读取2个字节,为所需数据类型的索引值(V)读取2个字节 跳过文件开头的V字节,以查找索引键K开始的数据所在的文件位置 读取数据 利润:) 这在程序流程中会发生很多次 嗯,我正在研究在J2ME上执行同样操作的可能

J2ME是否有类似于类的东西,或者是否有任何方法来模拟这个特定的(随机访问)功能

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

  • 为索引键(
    K
    )读取2个字节,为所需数据类型的索引值(
    V
    )读取2个字节
  • 跳过文件开头的
    V
    字节,以查找索引键
    K
    开始的数据所在的文件位置
  • 读取数据
  • 利润:)
  • 这在程序流程中会发生很多次

    嗯,我正在研究在J2ME上执行同样操作的可能性,虽然我承认我对整个Java非常陌生,但除了()类之外,我似乎找不到任何其他没有基本的查找/跳转到字节/返回位置函数的类


    那么,我的机会有多大?

    你应该有这样的机会

    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的文件,它会使许多低端设备上的应用程序崩溃,您应该将此文件拆分为多个文件。

    您好,谢谢您的回答!但是,你如何有效地寻求低于当前职位的职位呢?(比如说,您刚刚读取了位置100处的一个字节,现在您需要位置50处的一个字节)?不幸的是,在这种情况下,除了使用marke/reset方法外,没有其他方法。我想通过在j2me中的文件中提供偏移量来随机写入。有什么方法吗?