Hy,我正在使用FileWriter在SD卡上写一些文字,就像这样
FileWriter write = new FileWriter(Environment.getExternalStorageDirectory().toString() + "text.txt", true);
write.append("This is first written");
write.close();
现在当我写一些其他文字
FileWriter write = new FileWriter(Environment.getExternalStorageDirectory().toString() + "text.txt", true);
write.append("This is second written");
write.close();
看看这个文件,它看起来如此
This is first written
This is second writtn
现在,我的问题是,如何编写第二个文本并将其放在第一个文本上方,我还没有找到任何搜索选项.我知道我可以先阅读文本,然后写一个新文件并最后放入重新发布的文本,但还有其他解决方案吗?
解决方法:
我不知道Android中默认提供的类可以执行此操作.
即使有一个,如果你考虑它,它唯一可行的方法就是首先做你对读取当前内容的说法,附加到要添加的数据然后回写.
你可以创建一个扩展FileWriter的类,它通过首先打开/读取/关闭文件然后再次打开它,然后将append设置为false,然后再写入附加了先前数据的新数据.
Sparky使用RandomAccessFile的想法是另一种选择,因为在编写数据之前至少可以寻找开头(在重新打开之前无需先关闭文件).但是你仍然必须首先阅读先前的数据作为开始,然后写入不会“推”现有数据 – 它只会覆盖它.