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

ファイルが書き込みモードではなく追加モードで開かれることを示す2 番目のパラメーター booleantrueをコンストラクターに渡す必要があります。FileOutputStream

FileOutputStream out=new FileOutputStream("myfile");

上記のコードを実行するたびに、ファイルが書き込みモードで開かれるため、新しいコンテンツが古いコンテンツを上書きします。ただし、コンストラクターは、ファイルを追加モードで開くかどうかを示すFileOutputStream2 番目の引数を受け入れます。boolean

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

上記のコードはファイルを追加モードで開き、新しいコンテンツが古いコンテンツの最後に追加されるようにします。

FileOutputStreamコンストラクターの詳細については、これを参照しください。

于 2013-09-28T16:18:26.920 に答える