io流写入数据通过new FileWriter("myfile\\b.txt",false)第二参数传入false就可以在每次写入是覆盖原有内容吗,答案否定的!
public class MyBufferTest1 {
public static void main(String[] args) throws IOException {
//创建字符缓冲输出流对象
BufferedWriter bos = new BufferedWriter(new FileWriter("myfile\\b.txt"));
ArrayList a = new ArrayList<>();
a.add(1);
a.add(2);
a.add(3);
for (Integer i : a) {
//写入数据
bos.write(String.valueOf(i));
bos.flush();
}
//释放资源
bos.close();
}
}
运行后的文件存储为:123
如果io写入都会覆盖原有数据,那么最后一次输入因为只有一个3,所以该覆盖原有数据的时机只在第一次io写入的时候.所以,想要实现每次写入都会覆盖原有数据,可以在每次写入数据时,都重新new 一个io写入流对象,代码如下:
public class MyBufferTest1 {
public static void main(String[] args) throws IOException {
//创建字符缓冲输出流对象
ArrayList a = new ArrayList<>();
a.add(1);
a.add(2);
a.add(3);
for (Integer i : a) {
BufferedWriter bos = new BufferedWriter(new FileWriter("myfile\\b.txt"));
//写入数据
bos.write(String.valueOf(i));
bos.flush();
//释放资源
bos.close();
}
}
}
执行结果,文件数据: 3
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)