内容"/>
Java通过BufferedWriter写入后需覆盖原有内容
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<Integer> 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<Integer> 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
更多推荐
Java通过BufferedWriter写入后需覆盖原有内容
发布评论