java - 在文本文件中添加新的文本行

标签 java

我的应用记录声音。录制完声音后,系统会要求用户输入新的文件名。现在我接下来要做的是将所有文件名添加到一个文本文件中,以便稍后可以将其作为数组读取以创建 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 构造函数和 boolean append 参数

FileWriter fw = new FileWriter(recordedFiles.getAbsoluteFile(), true);
//                                                              ^^^^

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

关于java - 在文本文件中添加新的文本行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18125616/

相关文章:

java - HFS+ 上的 AclFileAttributeView

java - 在 Java 中存储大的十进制数

java - 关于 Java 中的数据库设计方法的问题

java - 使用批处理文件运行 maven java 项目

java - 在 doGet 或 doPost 之外调用 EJB session

java - 使用 line.Split 创建带有文本文件的自定义二维数组 Tile Map 会出现空异常错误

java - 为什么这个泛型方法中多了一个<E>?

java - Spring文件上传内部服务器错误

java - 如何使用 Mockito 模拟 For 循环

java - 如何知道 JVM 是否可以访问某个特定类?