package com.xiaomi.xms.sales.util; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import android.content.Context; import android.os.Environment; public class LogHelper { private static LogHelper INSTANCE = null; private static String PATH_LOGCAT; static File file; /** * * 初始化目录 * * */ public static File init(Context context) { if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {// 优先保存到SD卡中 PATH_LOGCAT = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "sales"; } else {// 如果SD卡不存在,就保存到本应用的目录下 PATH_LOGCAT = context.getFilesDir().getAbsolutePath()+ File.separator + "sales"; } //PATH_LOGCAT = context.getFilesDir().getAbsolutePath()+ File.separator + "sales"; file = new File(PATH_LOGCAT); if (!file.exists()) { file.mkdirs(); } Utils.Preference.setStringPref(context,Constants.Prefence.PREF_LOG_FILE_PATH,PATH_LOGCAT); file = new File(PATH_LOGCAT, "sales1.log"); return file; } public static LogHelper getInstance(Context context) { if (INSTANCE == null) { INSTANCE = new LogHelper(context); } return INSTANCE; } private LogHelper(Context context) { init(context); } public static void save(byte[] data) throws Exception { FileOutputStream outStream = new FileOutputStream(file,true); outStream.write(data); String lineSeparator = ";";//System.getProperty("line.separator", "\n"); outStream.write(lineSeparator.getBytes()); outStream.close(); } public static void save(String orderId,String type,String input,String output) throws Exception { String content = System.currentTimeMillis()+","+orderId+","+type+","+input+","+output+";"; FileOutputStream outStream = new FileOutputStream(file,true); outStream.write(content.getBytes()); outStream.close(); } public static String readLine(File file) throws IOException { if(file == null){ return null; } StringBuffer sb = new StringBuffer(); try { if(file.isFile() && file.exists()){ //判断文件是否存在 InputStreamReader read = new InputStreamReader( new FileInputStream(file));//考虑到编码格式 BufferedReader bufferedReader = new BufferedReader(read); String lineTxt = null; while((lineTxt = bufferedReader.readLine()) != null){ sb.append(lineTxt); } read.close(); }else{ System.out.println("找不到指定的文件"); } } catch (Exception e) { System.out.println("读取文件内容出错"); e.printStackTrace(); } return sb.toString(); } public static void cleanFile(File file) throws IOException { FileOutputStream outStream = new FileOutputStream(file); outStream.write("".getBytes()); outStream.close(); } /** * 读取流 * @param inStream * @return 字节数组 * @throws Exception */ public static byte[] readStream(InputStream inStream) throws Exception{ ByteArrayOutputStream outSteam = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = -1; while( (len=inStream.read(buffer)) != -1){ outSteam.write(buffer, 0, len); } outSteam.close(); inStream.close(); return outSteam.toByteArray(); } }