1. 程式人生 > 其它 >檔案儲存demo,直接儲存內容到本地中。

檔案儲存demo,直接儲存內容到本地中。

技術標籤:android&java工具類

把app String內容,儲存到本地文字中

用於: 儲存本地日誌等

demo示例:

package com.shbank.emobile.android.sit.bank.utils.log;

import android.os.Environment;
import android.util.Log;

import com.shbank.emobile.android.sit.bank.utils.AppUtil;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

public class LogUtil {
    //路徑為 /sd卡路徑/你的App名稱/log.txt
    private static final String appName = "cloudcore/" + AppUtil.getAppPackageName();
    private static File file;

    static {
        file = new File(Environment.getExternalStorageDirectory(), appName);
        if (!file.exists()) file.mkdirs();

        file = new File(file, "log.txt");
    }

    /**
     * 將文字追加寫入到檔案
     */
    public static void setAppendFile(String value){

        // TODO: 2020/7/30 後續多渠道配置後修改
//        if (CBuildConfig.envCtrl == Constant.ENV_PRODUCT) return;

        try{
            FileWriter fw = new FileWriter(file, true);
            BufferedWriter bw = new BufferedWriter(fw);
            PrintWriter printWriter = new PrintWriter(bw);
            printWriter.print(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+ ":
");
            printWriter.println(value);
            printWriter.close();
        }catch (Exception e){
        }
    }

    /**
     * 將異常資訊寫入到檔案
     */
    public static void setAppendFile(Throwable ex){//Throwable ex

        // TODO: 2020/7/30  後續多渠道配置後修改
//        if (CBuildConfig.envCtrl == Constant.ENV_PRODUCT) return;

        try{
            FileWriter fw = new FileWriter(file, true);
            BufferedWriter bw = new BufferedWriter(fw);
            PrintWriter printWriter = new PrintWriter(bw);
            printWriter.print(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + ":
");
            ex.printStackTrace(printWriter);
            printWriter.close();
        }catch (Exception e){
        }
    }

    public static void i(String tag, String message) {

        // TODO: 2020/7/30 後續多渠道配置後修改
//        if (!CBuildConfig.debugEnabled) return;//非debug

        Log.i(tag, message);
    }

    public static void e(String tag, String message) {

        // TODO: 2020/7/30 後續多渠道配置後修改
//        if (!CBuildConfig.debugEnabled) return;//非debug

        Log.e(tag, message);
    }
}