问题描述
在使用 FileOutputStream 和 FileInputStream 进行文件读写时发现大概率出现把文件清空的情况,非常费解!
文件的读取和写入代码大体如下:
try {
input = new FileInputStream(dataFile);
byte[] buffer = new byte[MOVE_BUFFER_LENGTH];
int length;
StringBuilder builder = new StringBuilder();
while ((length = input.read(buffer)) != -1) {
builder.append(new String(buffer, 0, length));
}
output = new FileOutputStream(dataFile);
output.write("String".getBytes());
} catch (Exception e) {
e.getMessage();
} finally {
close(input);
close(output);
}
在这一段短短的代码中我一直没有认为有什么需要注意的地方,直到遇到了上面的问题, 注意: output = new FileOutputStream(dataFile);
这一段代码执行之后文件就已经被清空了, 即使你没有执行写入代码, 如果想不清空文件而在文件内容末尾写入可以加参数:output &