我的错!在没有认真阅读FileConnection文档之后就妄下结论.最近下载了fileconnection_spec_1.00文档,发现其中有一个方法 public java.io.OutputStream openOutputStream(long byteOffset) throws java.io.IOException 该方法在打开输出流时可指定写入的位置,写入的数据将覆盖旧数据,利用这个方法,还是有可能在手机上实现文件式RMS的. 现在我正在做手机理财JAccount的文件备份和恢复,还分不出身来尝试,有 ...
感谢Cavaj!在Eclipse在包资源管理器上查到RecordStore.class在midpapi10.jar中 将C:\WTK22\lib\midpapi10.jar解开,然后用Cavaj!反编译RecordStore.class,得到了两个类,果然有些料到,不仅有记录链表,还有自由链表,自由空间重用与分裂...,用代码说话(个人做了一些修改和注释)! ------------------------ 写在最后:原来研究它的目的是在利用J2me可选包FileConnection方式来实现手机理财JAccounthttp://iwinyeah.javaeye.com/admin/cate ...
请看图文件头中有最后一个记录的偏移量,而且每一个记录都存有上一个记录的偏移量,第一个记录的上一记录偏移量为0,可以将它们看成一个单向链表,因此根据ID查找记录的方法可以是这样的: public RMSData readRMSData(int id){ RMSData tmpRecord; int offset = lastRecordOffset; while(offset != 0){ tmpRecord = fromStream(offset); if(tmpRecord == null){ r ...
从分析可看看出:0x0000 - 0x002f 是文件头 00x0030 - 0x00af 是第一记录内容 文件头中还有0x001e - 0x001f 意义不明 记录内容中还有0x0032 - 0x0033 意义不明(事后发现,这里应该是上一记录偏移量) 不过在多次修改记录后,记录的位置会发生变化,甚至有ID不为1的记录出现在0x30,而ID为1的记录出现在其他地方的情况,初步估计是优化的结果。
最近做了一个手机理财的软件JAccount,但RMS在容量毕竟有限制,有将它以文件方式实现的想法,但不清楚RMS实现的内幕,我找了一下,找不到任何关于这方面的资料,现在的想法先看一看WTK模拟器是如何实现它的。正在分析由模拟器生成的RMS文件。 ----------------------------------------------------- 正式宣告该想法无法实现: 由于FileConnection未实现类似seek(offset)方法,无法实现文件的自由读写!
iwinyeah
搜索本博客
我的相册
C8609f76-ccc2-3dbc-a9e8-b5e08077b8c2-thumb
jaccount1.0.7
共 5 张
最近加入圈子
存档
最新评论