如何修改二进制文件中的一段?

qxue2003 2010-02-17 03:12:46
android开发时,保存私有数据,想修改二进制文件中的一段,但是使用
FileOutputStream fosw = c.openFileOutput(fileName, Context.MODE_PRIVATE)
打开后写入文件,发现后面的数据全部没有了,问一下,
有没有方便的方法可以实现这一功能?
比如1K的文件,想修改第200个字节后保存。如何实现。
我现在用的办法老土了,我将源文件在拷到另外一个temp文件中,
然后,再将前面的199个写入,修改后,再将后面的800个写入。
这样修改一次就要读写2次文件,效率太低了。而文件大的时候全部读入内存又不太现实。
对于私有数据,我没有找到使用RandomAccessFiles的方法。
盼高人指教。

...全文
193 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
梦_枫 2010-02-20
  • 打赏
  • 举报
回复
学习。。。。。。。。。。等待高手的回答
MicroSky2813 2010-02-18
  • 打赏
  • 举报
回复
要是你对系统熟悉的话,进使用写ring低的直接处理
Defonds 2010-02-18
  • 打赏
  • 举报
回复
引用楼主 qxue2003 的回复:
android开发时,保存私有数据,想修改二进制文件中的一段,但是使用
FileOutputStream fosw = c.openFileOutput(fileName, Context.MODE_PRIVATE)
打开后写入文件,发现后面的数据全部没有了,问一下,
有没有方便的方法可以实现这一功能?
比如1K的文件,想修改第200个字节后保存。如何实现。
我现在用的办法老土了,我将源文件在拷到另外一个temp文件中,
然后,再将前面的199个写入,修改后,再将后面的800个写入。
这样修改一次就要读写2次文件,效率太低了。而文件大的时候全部读入内存又不太现实。
对于私有数据,我没有找到使用RandomAccessFiles的方法。
盼高人指教。
FileOutputStream

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧