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);