如何在不覆盖现有文件的情况下将新String添加到文件中?

时间:2015-04-10 00:46:28

标签: java

我有这个方法:

public void save(String pName) throws IOException {
    FileChooser choiceFile = new FileChooser();
    choiceFile.setInitialDirectory(new File(System
            .getProperty("user.dir")));
    Window window = null;
    File file = choiceFile.showSaveDialog(window);
    PrintWriter writeLine = new PrintWriter(new FileWriter(file, true)); 

    FileOutputStream fosTemp = null;
    BufferedOutputStream bosTemp = null;
    String data = "";

    try {
        fosTemp = new FileOutputStream(file);
        bosTemp = new BufferedOutputStream(fosTemp);

        try {
            data += "A new line of text\n";

            writeLine.println(data); 
            writeLine.flush(); 
            writeLine.close();

        bosTemp.flush();
        bosTemp.close();
    } catch (FileNotFoundException e) {
        System.out.println("ERROR opening");
    } catch (IOException e) {
        System.out.println("ERROR closing");
    }finally {

    }}finally{

    }
}

我想在文件中添加新的文本行。

为此,我必须打开保存对话框窗口。

然后我必须选择文件(例如 - > test.txt)并单击保存按钮。

然后它必须将新的文本行添加到'test.txt'文件的末尾。

但我的问题是它总是告诉我文件已经存在。然后它问我是否要覆盖它。如果我说不,它不想保存。如果我说是,它会用一个名为'test.txt'的新文件覆盖'test.txt'文件,里面有新的文本行。

如何制作它以便在我选择它时不要求我覆盖'test.txt',然后单击“保存”以便在“test.txt”文件中添加新的文本行?

我还必须指明我是用Java阅读和编写文件的新手。因此,如果我在代码复杂性等方面犯了很多错误,请告诉我。

我已经在这个网站上搜索了很多论坛和不同的主题。我找到了一些提示,但他们没有解决我的问题。

感谢您的回答。

0 个答案:

没有答案