Android在文件中寫日誌
有時候我們在程序需要打印日誌,但是使用Log打印在控制檯很容易就被刷過去,或者打的是簽名安裝包不方便在控制檯輸出日誌,那就需要我們把日誌寫到文件中,方便我們自己查看。
第一種、追加日誌輸出文件。就是每次輸出的日誌都在原先的日誌文件中追加,不會覆蓋上一次輸出的日誌。
/**
* 追加文件:使用FileWriter
* @param fileName
* @param content
*/
public static void writeLog(String fileName,String content) {
String path = Environment.getExternalStorageDirectory() + "Log/"; //文件路徑
FileWriter writer = null;
try {
File file = new File(path);
if (!file.exists()) { //沒有創建文件夾則創建
file.mkdirs();
}
// 打開一個寫文件器,構造函數中的第二個參數true表示以追加形式寫文件
writer = new FileWriter(path + fileName, true);
writer.write(content);
writer.flush();
if (writer != null) {
//關閉流
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
調用方法:
writeLog("log.txt",content);
第二種、不追加日誌輸出文件。每次輸出的日誌都會把上一次輸出的日誌覆蓋掉,只剩下最後一次輸出的日誌。
/**
* 不追加文件
* @param filename 文件名稱
* @param content 打印內容
*/
public static void writeContent(String filename, String content) {
String path = Environment.getExternalStorageDirectory() + "Log/"; //文件路徑
FileOutputStream fos =null;
try {
fos = new FileOutputStream(path);
File file = new File(path + filename);
if (!file.exists()) { //沒有創建文件則創建
file.mkdirs();
}
fos.write(content.getBytes()); //寫入文件
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fos.close(); //關閉文件流
} catch (IOException e) {
e.printStackTrace();
}
}
}
調用方法:
writeContent("log.txt",content);