Java 在文本文件中添加新的文本行

Java 在文本文件中添加新的文本行,java,Java,我的应用程序记录声音。录音后,要求用户输入新的文件名。现在我下一步要做的是在文本文件中添加所有文件名,以便以后可以将其作为数组读取以生成listview 代码如下: //this is in onCreate File recordedFiles = new File(externalStoragePath + File.separator + "/Android/data/com.whizzappseasyvoicenotepad/recorded files.txt"); if(!recor

我的应用程序记录声音。录音后,要求用户输入新的文件名。现在我下一步要做的是在文本文件中添加所有文件名,以便以后可以将其作为数组读取以生成listview

代码如下:

//this is in onCreate
File recordedFiles = new File(externalStoragePath + File.separator + "/Android/data/com.whizzappseasyvoicenotepad/recorded files.txt");
if(!recordedFiles.exists())
    {
            try {
                recordedFiles.createNewFile();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }
//this executes everytime text is entered and the button is clicked
try {
            String content = input.getText().toString();
            FileWriter fw = new FileWriter(recordedFiles.getAbsoluteFile());
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write(">" + content + ".mp3");
            bw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
现在的问题是,每次我录制一个新文件时,前一行都会被覆盖。因此,如果我记录两个文件“text1”和“text2”,在我记录text1之后,txt文件将显示text1,但在我记录text2之后,text2将覆盖text1而不是插入新行

我试着加上:

bw.NewLine()
以前

bw.write(">" + content + ".mp3");
但它不起作用

如果我录制了三个声音,并将它们命名为sound1、sound2和sound3,我希望结果如下:

>sound1
>sound2
>sound3
将FileWriter构造函数与布尔追加参数一起使用

这将允许文件在结尾追加文本,而不是覆盖以前的内容。

使用带有布尔追加参数的FileWriter构造函数

这将使文件在结尾追加文本,而不是覆盖以前的内容。

您可以通过添加line.separator来完成此操作

可以通过添加line.separator来完成此操作

FileWriter如果应该覆盖,则采用布尔值。因此,如果要附加到文件而不是覆盖,请使用true。

如果要覆盖,FileWriter将使用布尔值。因此,如果希望附加到文件而不是覆盖,请使用true。

Replace

FileWriter fw = new FileWriter(recordedFiles.getAbsoluteFile());
而不是

FileWriter fw = new FileWriter(recordedFiles.getAbsoluteFile(), true);
替换

FileWriter fw = new FileWriter(recordedFiles.getAbsoluteFile());
而不是

FileWriter fw = new FileWriter(recordedFiles.getAbsoluteFile(), true);
可能重复:可能重复: