int*_*gli 2 java android bufferedwriter
每次按下按钮时,我都会在文本文件中附加一行.目前我每次按下按钮时都这样做:
...
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(f, true));
if (fileIsNew == true)
bw.write(firstLine);
bw.write(string);
bw.close();
Log.v("file", "written to file:" + f.getAbsolutePath());
} catch (IOException e) {
Log.v("IOException", e.toString());
}
...
Run Code Online (Sandbox Code Playgroud)
因为bufferedWriter的目的是缓冲输出,所以我认为在每一行之后关闭bufferedwriter并不是一个好主意,对吗?
那我该bw.close()什么时候打电话?我应该在某种形式下创建新的BufferedWriter init()吗?我认为每次按下按钮时创建一个新的BufferedWriter效率很低.
您可以将其声明为成员字段,首先按下按钮,通过设置标志创建它,并保持打开状态.
每次按下,write()然后打电话flush()(以避免内容丢失).
BufferedWriter bw;
boolean isOpen = false;
// ..
try {
if (!isOpen) {
bw = new BufferedWriter(new FileWriter(logFile, true));
bw.write(firstLine);
isOpen = true;
}
bw.write(string);
bw.flush();
Log.v("file", "written to file:" + logFile.getAbsolutePath());
} catch (IOException e) {
Log.v("IOException", e.toString());
}
Run Code Online (Sandbox Code Playgroud)