0

ログをファイルに出力する方法を作成しました。これは機能しています。私の唯一の懸念は、ログが新しいログに置き換えられたことです。ログを追加し続ける方法はありますか??

public static void printLog(Context context){
String filename = context.getExternalFilesDir(null).getPath() + File.separator + "my_app.log";
String command = "logcat -d *:V";

Log.d(TAG, "command: " + command);

try{
    Process process = Runtime.getRuntime().exec(command);

    BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
    String line = null;
    try{
        File file = new File(filename);
        file.createNewFile();
        FileWriter writer = new FileWriter(file);
        while((line = in.readLine()) != null){
            writer.write(line + "\n");
        }
        writer.flush();
        writer.close();
    }
    catch(IOException e){
        e.printStackTrace();
    }
}
catch(IOException e){
    e.printStackTrace();
}
}
4

2 に答える 2

2

これを試して:

public static void printLog(String logData) {

    try {
        File logFile = new File(Environment.getExternalStorageDirectory(),
                "yourLog.txt");
        if (!logFile.exists()) {
            try {
                logFile.createNewFile();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        try {
            BufferedWriter buf = new BufferedWriter(new FileWriter(logFile,
                    true));
            buf.append(logData);
            buf.newLine();
            buf.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    } catch (Exception e) {
              e.printStackTrace();
    }
}

追加モードでファイルを書き込んでいません。new FileWriter(file,true)の代わりに 使用 new FileWriter(file)

于 2013-07-12T12:16:58.253 に答える
1

SD カードに書き込むより簡単な方法:

try {
    FileWriter  f = new FileWriter(Environment.getExternalStorageDirectory()+
             "/mytextfile.txt", true);
    f.write("Hello World");
    f.flush();
    f.close();
}

のコンストラクターのブール値は、FileWriter追加のみが許可されていると言います:

http://developer.android.com/reference/java/io/FileWriter.html#FileWriter(java.io.File , boolean)

于 2013-07-12T11:57:25.373 に答える