【问题标题】:File gets overwritten on program restart Android文件在程序重新启动Android时被覆盖
【发布时间】:2011-05-11 22:48:15
【问题描述】:

我正在尝试将一些数据写入文件。但是,每次我重新启动程序时,我认为它正在覆盖原始文件(制作一个新文件?)这是我实例化事物的代码的 sn-p。有什么我可以改变的,这样文件就不会每次都被覆盖?类似 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();
    }

【问题讨论】:

  • 当我尝试读取文件中的项目时,我只得到最后一个放入的项目:(

标签: android save restart filewriter bufferedwriter


【解决方案1】:

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

改为使用

FileWriter writer = new FileWriter(highscoresFile, true);

最后的布尔值告诉你是否追加到文件的末尾。

【讨论】:

  • 我怎样才能让它写入一个新行并仍然追加?只是“写”吗??
  • 你可能想要翻转你的 out.append(name);和 out.newLine(); (当然也取消注释!)我相信这会产生预期的效果。
  • 好的,我做到了。我认为我现在的问题是当我开始将事物存储到数组中时。它们都存储在我阵列的一个插槽中。嗯....我可能必须找到另一种方法来解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-22
相关资源
最近更新 更多