问一个java FileWriter的小问题

package testIO;

import java.io.*;

public class FileWriterTest
{
public static void main(String[] args)
{
try(
FileWriter fw = new FileWriter("poem.txt"))
{
fw.write("锦瑟 - 李商隐\r\n");
fw.write("锦瑟无端五十弦,一弦一柱思华年。\r\n");
fw.write("庄生晓梦迷蝴蝶,望帝春心托杜鹃。\r\n");
fw.write("沧海月明珠有泪,蓝田日暖玉生烟。\r\n");
fw.write("此情可待成追忆,只是当时已惘然。\r\n");
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
}
}
代码的最后为什么不关闭文件(.close)?
可以看到,点一次运行会写一首诗,但是点第二次运行的时候会覆盖第一次写的内容。有什么办法能让第一次写的内容保存,第二次运行的时候再第一次运行写完的结尾回车换行接着写?

public FileWriter(File file,
boolean append)
throws IOException
根据给定的 File 对象构造一个 FileWriter 对象。如果第二个参数为
true,则将字节写入文件末尾处,而不是写入文件开始处。
参数:
file - 要写入数据的 File 对象
append - 如果为 true,则将字节写入文件末尾处,而不是写入文件开始处追问

不是我的问题吧。。。

追答

看的有点快。。。

你问不关闭文件?因为你没有写呀。。。可以catch完了之后直接写,也可以写在finally里,建议后者
finally {
try {
if (fw != null)
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
第二个问题不是在文件后追加吗。。

fw = new FileWriter("poem.txt",true);

追问

哦,我试试

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答