Java Android-在文本文件中追加特定行
大家好, 我有一个文本文件,我需要附加到我的应用程序中。现在我可以重写整个文件,将更改合并到特定行,但我希望有一个更有效的解决方案。 我知道我需要附加的行号,但我不确定如何到达该行,最好不要循环通过所有其他行,除非这是唯一的方法。这就是我到目前为止重新创建整个文件的内容:`Java Android-在文本文件中追加特定行,java,android,Java,Android,大家好, 我有一个文本文件,我需要附加到我的应用程序中。现在我可以重写整个文件,将更改合并到特定行,但我希望有一个更有效的解决方案。 我知道我需要附加的行号,但我不确定如何到达该行,最好不要循环通过所有其他行,除非这是唯一的方法。这就是我到目前为止重新创建整个文件的内容:` try { FileOutputStream fOut = openFileOutput("tasklist.txt", MODE_APPEND); Buffe
try {
FileOutputStream fOut = openFileOutput("tasklist.txt", MODE_APPEND);
BufferedOutputStream buf = new BufferedOutputStream(fOut);
OutputStreamWriter osw = new OutputStreamWriter(buf);
BufferedWriter writer = new BufferedWriter(osw);
for(int count = 0; count < str.size(); count++)
{
writer.write(str[count]);
writer.write("\r\n");
}
writer.flush();
writer.close();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, "Error saving txt file", Toast.LENGTH_SHORT);
}`
试试看{
FileOutputStream fOut=openFileOutput(“tasklist.txt”,模式\追加);
BufferedOutputStream buf=新的BufferedOutputStream(fOut);
OutputStreamWriter osw=新的OutputStreamWriter(buf);
BufferedWriter=新的BufferedWriter(osw);
对于(int count=0;count
希望有人知道一个更有效的解决方案。谢谢。有一些更干净的方法,但对于文件处理,没有一种更有效的方法(据我所知)。基本上,您可以从头到尾地添加数据。这就是文件I/O的工作原理(它不是Android或Java的东西) 不过,您可以尝试FileWriter将其整理一下(ctor的“true”参数表示追加): 不过请注意,FileWriter使用系统默认编码。这在Android上应该可以,但总体上要小心 这里有一些好将军 此外,根据您对附加到的文件所做的操作(您编辑同一文件的频率,以及通过哪些流程),您可能需要制作该文件的副本,或者,为了确保在使用日志文件系统的Android设备上不会丢失数据 不过,为了让你的应用程序更高效,也许你可以将数据缓存在内存中,只在特定的时间间隔或完成后写出整个文件(而不是追加)。如果您有大量数据,DB甚至可能是合适的
FileWriter writer = new FileWriter(aFile, true));
try {
writer.write("append here\n");
} finally {
writer.close();
}