Android 程序重新启动时文件被覆盖

Android 程序重新启动时文件被覆盖,android,save,restart,filewriter,bufferedwriter,Android,Save,Restart,Filewriter,Bufferedwriter,我正试图把一些数据写入一个文件。但是,每次我重新启动程序时,我认为它都在覆盖原始文件(创建一个新文件?),下面是一段代码,我在其中实例化了一些东西。有什么我可以更改的,这样文件就不会每次都被覆盖吗?有点像if file.doesExist try { File root = Environment.getExternalStorageDirectory(); if(root.canWrite()){ File highscoresFile = ne

我正试图把一些数据写入一个文件。但是,每次我重新启动程序时,我认为它都在覆盖原始文件(创建一个新文件?),下面是一段代码,我在其中实例化了一些东西。有什么我可以更改的,这样文件就不会每次都被覆盖吗?有点像if file.doesExist

try {
        File root = Environment.getExternalStorageDirectory();
        if(root.canWrite()){
        File highscoresFile = new File(root, "names.txt");
        FileWriter writer = new FileWriter(highscoresFile);
        BufferedWriter out = new BufferedWriter(writer);
        //out.newLine();
        out.append(name);
        out.close();
        }
    } catch (FileNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

您可能正在覆盖该文件。您可以使用不同的构造函数使用FileWriter附加到文件末尾

改用

FileWriter writer = new FileWriter(highscoresFile, true);

末尾的布尔值告诉您是否要附加到文件的末尾。

当我尝试读取文件中的项目时,我只得到最后一个输入的项目:(我如何使它写入新行并仍然附加?它只是“写入”?您可能想将out.append(name)和out.newLine()转换为out.append;(当然也要取消注释!)我相信这会达到预期效果。好吧,我这么做了。我想我现在的问题是当我开始将东西存储到数组中时。它们都存储在数组的一个插槽中。嗯……我可能必须找到另一种方法来解决这个问题。