這是我的Android應用程序中的一種方法,應該在添加新的String文本之前在文本文件中創建一個新行。但是,當它運行時,沒有新行。爲什麼不在Android的文本文件中創建新行?
public void addTextToFile(String text) {
try
{
File log=new File(getFilesDir()+File.separator+"MileageLog.txt");
BufferedWriter bufferedWriter=null;
if(log.exists()==false)
{
bufferedWriter = new BufferedWriter(new FileWriter(log+"\n"));
}else{
bufferedWriter = new BufferedWriter(new FileWriter(log+"\n", true));
}
String[] lines=text.split("\n");
for(String line:lines)
{
bufferedWriter.write(line);
}
bufferedWriter.close();
Toast.makeText(getBaseContext(), "Added Successfully", Toast.LENGTH_SHORT).show();
finish();
}catch(IOException ex)
{
ex.printStackTrace();
}
請注意,這會產生一個StringBuilder分配,它比剛寫入'line'和然後'\ n'的開銷要大。因此,如上所述使用'.newLine()'或將其包裝在'PrintWriter'中並使用'.println()'可能會更便宜(可能會忽略同步)。 – tilpner
@Stack同意,修正答案 –
在大多數情況下,這只是一個非常小的問題,爲了效率而交易冗長。我只是想指出。 :) – tilpner