android – 使用FileWriter在begin上写文本

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的想法是另一种选择,因为在编写数据之前至少可以寻找开头(在重新打开之前无需先关闭文件).但是你仍然必须首先阅读先前的数据作为开始,然后写入不会“推”现有数据 – 它只会覆盖它.

上一篇:java – PrintWriter:读取和写入同一文件 – 在再次打开之前,文件似乎不会被保存


下一篇:大二下学期学习进度(十五)