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
现在,我的问题是,如何编写第二个文本并将其放在第一个文本上方,我还没有找到任何搜索选项。我知道我可以先阅读文本,然后写一个新文件,最后放入重新发布的文本,但还有其他解决方案吗?
答案 0 :(得分:1)
我不知道Android中默认提供的类可以执行此操作。
即使有一个,如果你考虑它,它唯一可行的方法就是首先做你对读取当前内容的说法,附加到要添加的数据然后回写。
您可以创建一个扩展FileWriter
的类,首先打开/读取/关闭文件,然后在写入新数据之前将append
设置为false
再次打开它加上之前的数据。
Sparky使用RandomAccessFile
的想法是另一种选择,因为在写入数据之前至少可以寻找开头(在重新打开之前无需先关闭文件)。但是你仍然必须首先阅读先前的数据作为开始,然后写入不会“推”现有数据 - 它只会覆盖它。
答案 1 :(得分:1)
您是控制文件视图的人,而不是用户使用其他程序查看文件吗?如果是这样,那么只反向显示文件内容呢?
答案 2 :(得分:0)
我会在这里向你解释。
假设我已经在文件上写了一些数据,而数据看起来是
21.02.2012, 11:43<#>-<#>88<#>-
21.02.2012, 13:12<#>-<#>80<#>-
21.02.2012, 19:36<#>-<#>61<#>-
22.02.2012, 07:15<#>-<#>50<#>-
23.02.2012, 12:14<#>-<#>44<#>-
现在在我的应用程序中,我阅读了文本并将其拆分为&lt;#&gt;
String split = readen.split("<#>");
我想使用WebView显示文本,并在表格中显示它看起来如此
的数据----------------------
| 23.02.2012 |
----------------------
| 12:14 | - | 44 | - |
----------------------
----------------------
| 22.02.2012 |
----------------------
| 07:15 | - | 50 | - |
----------------------
----------------------
| 21.02.2012 |
----------------------
| 19:36 | - | 61 | - |
| 13:12 | - | 80 | - |
| 11:43 | - | 88 | - |
----------------------
我读了一行,当日期等于之前的日期时,它在同一个表中,否则关闭表并打开一个新的并放入新数据,再次读取并查看日期日期是否等于数据,然后放入相同的表,其他再次关闭并打开一个新表...这不是很难建立,但建立这个和恢复是非常困难的:D所以我想改变文件中的数据,这样我就不用费心了通过反转,简单地读取数据并创建表格