在JAVA中用bufferwriter向TXT文件中写入文件,为什么会覆盖文件?
时间: 2024-02-13 19:01:03 浏览: 27
在Java中使用BufferedWriter向TXT文件中写入数据时,如果您使用了文件输出流(FileWriter)来创建BufferedWriter对象,则默认情况下会覆盖原有文件内容。这是因为在创建文件输出流时,如果文件已经存在,会将原有文件内容清空,然后开始写入新的内容。
如果您希望在原有文件内容的基础上进行写入,可以使用FileWriter的另一个构造函数,将其第二个参数设置为true,即:
```
FileWriter writer = new FileWriter("file.txt", true);
BufferedWriter bufferedWriter = new BufferedWriter(writer);
```
其中,第二个参数表示是否以追加方式写入文件,如果设置为true,则会在原有文件内容的末尾开始写入新的数据,而不是覆盖原有文件内容。
另外,还可以使用RandomAccessFile类来实现在指定位置进行插入数据的功能,但使用起来相对复杂。
相关问题
在JAVA中用buffer writer向TXT文件中写入信息,为什么会将将上一次所输入的再重新写入一遍?
可能是因为你在写入完毕后没有将缓冲区清空,导致之前的内容没有被清除而被重复写入。你可以在写入完毕后使用 flush() 方法清空缓冲区,或者在创建 BufferedWriter 对象时指定 autoFlush 参数为 true,这样在写入完毕后会自动清空缓冲区。以下是一个使用 autoFlush 参数的示例代码:
```
try (BufferedWriter writer = new BufferedWriter(new FileWriter("file.txt"), true)) {
writer.write("Hello, world!");
// autoFlush 参数为 true,写入完毕后会自动清空缓冲区
}
```
在python中用string函数写入txt文本文件,I love python字符串
以下是使用Python的示例代码:
```python
str = "I love python"
with open("output.txt", "w") as outfile:
outfile.write(str)
print("写入成功!")
```
这段代码使用`with open()`语句打开一个名为"output.txt"的文件,使用"w"模式表示写入模式。然后使用`write()`方法将字符串写入文件中,最后`with`语句块结束时会自动关闭文件。如果文件打开失败,则会抛出异常。如果写入成功,则输出写入成功的信息。