有以下一段代码:
OutputStream outputStream = null;
try {
outputStream = new BufferedOutputStream(new FileOutputStream(fileName));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
assert outputStream != null;
assert text != null;
outputStream.write(text.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
问题是执行后,文件内容被删除,text.getBytes()显示在控制台。
如何纠正?
要创建类对象,
FileOutputStream您可以使用构造函数:当使用这个构造函数时,数据将被写入文件的开头,因此,当信息被写入文件时,之前在文件中的所有内容都将被删除。
要将数据写入文件末尾,请使用构造函数:
标志
append等于true.void write(byte[] b)类方法不是将FileOutputStream数据写入文件本身,而是写入流缓冲区(以免再次触及磁盘上的文件并写入更大的块)。要将信息写入文件,在调用方法后write(...),您必须:flush()如果您将继续使用流,请调用该方法,或者
close()如果您将不再使用此线程,请调用该方法。在上面的代码片段中,除了堆栈跟踪之外,没有任何内容可以输出到控制台。