0

我正在使用以下代码将日志数据保存到文件中。但是,每次拨打新电话时,旧内容都消失了......

我无法弄清楚问题是什么......

public void writeToFile(String fileName, String textToWrite) {

        FileOutputStream fOut = null;
        try {

            File root = new File(Environment.getExternalStorageDirectory() , fileName);
            if (! root.exists()){
                root.createNewFile();
            }

            fOut = new FileOutputStream(root);
            OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
            myOutWriter.append(textToWrite);
            myOutWriter.flush();
            myOutWriter.close();   
        } 
        catch (Exception e) {
            new MailService().mailMessage(e.toString());
        }
        finally{

            if(fOut != null){
                try{
                    fOut.close();
                }
                catch(Exception ex){

                }
            }
        }

    }
4

1 回答 1

3

您需要将第二个参数 boolean 传递trueFileOutputStream构造函数,这表明文件将以追加模式而不是写入模式打开。

FileOutputStream out=new FileOutputStream("myfile");

每次执行上述代码时,它都会以写入模式打开文件,以便新内容覆盖旧内容。但是,FileOutputStream构造函数接受第二个参数,该参数boolean指示是否以附加模式打开文件。

FileOutputStream out=new FileOutputStream("myfile",true);

上面的代码将以追加模式打开文件,以便将新内容追加到旧内容的末尾。

要了解有关FileOutputStream构造函数的更多信息,请参阅

于 2013-09-28T16:18:26.920 回答