private void saveSetResult(int pos){
String filename = "system/media/bootlogo/logo_pos_record";
Log.d("BootAnimation", "write:"+Integer.toString(pos+1));
try {
RandomAccessFile out = new RandomAccessFile(filename, "rw");
out.seek(0);
out.writeBytes(Integer.toString(pos+1));
out.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
写文件的各种方法都试了。。在该文件保存setting下的某些设置,当保存完后平台10s内强制断电,然后重启,发现上次数据并未保存,
10s后再断电会保存成功,个人认为失败情况是因为数据还在缓冲区,没有真正写到文件中去,也有可能和文件位置有关????求教各位此问题如何解??????
感谢就不说了,分数说明一切!!!
写文件Java
解决方案 »
- 急 !android sdk是不是需要在线安装。有没有更好的办法
- google地图的问题 ,LocationListener不起作用啊 ,里面有代码,急啊
- 关于关闭android浏览器的问题
- webview在启动时,有一个空白页面,这个空白页面如何换成动画的显示方式
- android为应用设置快捷键
- 关于android 中MediaScan对M4A的TAG信息的支持添加
- 如何处理图片的放大缩小以及拖动?
- 写入sd卡遇到问题
- android listView 如何只让他更新 一个屏幕内的Item
- android向web提交数据,中文乱码
- 菜鸟求大神,本人刚进入android开发
- IDEA 开发Android项目测试问题
http://www.jspcn.net/htmlnews/11049335395151218.html这个不知道对你有帮助没
String filename = "system/media/bootlogo/logo_pos_record";
Log.d("BootAnimation", "write:"+Integer.toString(pos+1));
try {
RandomAccessFile out = new RandomAccessFile(filename, "rw");
out.seek(0);
out.writeBytes(Integer.toString(pos+1));
out.getFD().sync();
out.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
write之后不需要flush就直接close是否合理?
表示没有用过RandomAccessFile(),只用过FileOutputStream。
flush用过,没效果啊。。
请问sync如何用????
验证后发现有点作用,大概在5s后就会保存,还是达不到要求啊
说明你一次写入的内容太多了。你要循环着写。一次写入少一点,如1024*8个byte。
while(XXXX) {
out.write(1024*8);
out.getFD().sync();
}
验证后发现有点作用,大概在5s后就会保存,还是达不到要求啊
说明你一次写入的内容太多了。你要循环着写。一次写入少一点,如1024*8个byte。
while(XXXX) {
out.write(1024*8);
out.getFD().sync();
}一个Integer能有多少.......估计还是考虑错方向了 问问懂底层驱动的
还有 只写这么点东西 不需要RandomAccessFile吧 简单的文件读写就够了
验证后发现有点作用,大概在5s后就会保存,还是达不到要求啊
说明你一次写入的内容太多了。你要循环着写。一次写入少一点,如1024*8个byte。
while(XXXX) {
out.write(1024*8);
out.getFD().sync();
}一个Integer能有多少.......估计还是考虑错方向了 问问懂底层驱动的
还有 只写这么点东西 不需要RandomAccessFile吧 简单的文件读写就够了 我也很奇怪,为何楼主不是直接写文件,用这种方式到底在写啥?
验证后发现有点作用,大概在5s后就会保存,还是达不到要求啊
说明你一次写入的内容太多了。你要循环着写。一次写入少一点,如1024*8个byte。
while(XXXX) {
out.write(1024*8);
out.getFD().sync();
}一个Integer能有多少.......估计还是考虑错方向了 问问懂底层驱动的
还有 只写这么点东西 不需要RandomAccessFile吧 简单的文件读写就够了 我也很奇怪,为何楼主不是直接写文件,用这种方式到底在写啥?公司网络受限,不能回复,不好意思啊。
此api是只保存一个整数,不用cotentprovider或其他的原因是保存的数据是在开机时来读取,这时android的service都还没有起来,所有只能以文件方式来保存。java的几种文件操作都试过了。。
另外,自己用C也谢了一个测试的程序,发现还没有这种方法的存储速度快。。难道无解???????
首先我说下数据是用户操作时上层保存的,是在java部分实现的,不知道二位说的更简单的方式是什么???
验证后发现有点作用,大概在5s后就会保存,还是达不到要求啊
说明你一次写入的内容太多了。你要循环着写。一次写入少一点,如1024*8个byte。
while(XXXX) {
out.write(1024*8);
out.getFD().sync();
}一个Integer能有多少.......估计还是考虑错方向了 问问懂底层驱动的
还有 只写这么点东西 不需要RandomAccessFile吧 简单的文件读写就够了
请问简单的文件操作是指什么方法?????
验证后发现有点作用,大概在5s后就会保存,还是达不到要求啊
说明你一次写入的内容太多了。你要循环着写。一次写入少一点,如1024*8个byte。
while(XXXX) {
out.write(1024*8);
out.getFD().sync();
}一个Integer能有多少.......估计还是考虑错方向了 问问懂底层驱动的
还有 只写这么点东西 不需要RandomAccessFile吧 简单的文件读写就够了
请问简单的文件操作是指什么方法?????
就是普通的文件读写 new FileOutputStream
但是这个估计也不能解决你的问题 可能跟system分区有关系 其他的地方你写了不会需要重启的 是吧 这个分区比较特殊吧