J2ME是否有类似RandomAccessFile
类的东西,或者有没有办法模拟这个特定的(随机访问)功能?
问题在于:我有一个相当大的二进制数据文件(~600 KB),并且想要创建一个使用该数据的移动应用程序。该数据的格式是自制的,包含许多索引块和数据块。读取其他平台(如PHP或C)上的数据通常是这样的:
K
)读取2个字节,为索引值(V
)读取另外2个所需数据类型V
字节以寻找索引键K
的数据开始的文件位置在程序流程中多次发生这种情况。
嗯,我正在研究在J2ME上做同样事情的可能性,虽然我承认我对整个Java事情都很陌生,但我似乎无法找到{{3}以外的任何东西。 } {({3}})类没有基本的搜索/跳转到我需要的字节/返回位置函数。那么,我的机会是什么?
答案 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文件,它会使许多低端设备上的应用程序崩溃,您应该将此文件拆分为多个文件。