package com.mm.android.deviceaddmodule.service; import android.text.TextUtils; import com.google.gson.Gson; import com.mm.android.deviceaddmodule.LCDeviceEngine; import com.mm.android.deviceaddmodule.mobilecommon.AppConsume.BusinessException; import com.mm.android.deviceaddmodule.mobilecommon.businesstip.BusinessErrorCode; import com.mm.android.deviceaddmodule.mobilecommon.entity.deviceadd.DeviceIntroductionInfo; import com.mm.android.deviceaddmodule.openapi.data.DeviceLeadingInfoData; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; /** * 用于将服务返回信息保存成文件 **/ public class FileSaveHelper { public static String INTRODUCTION_INFO_NAME="introduction.json"; //设备引导 public static void saveToJsonInfo(String content, String fileName){ String directory = getCachePath(); FileSaveHelper.writeToFile(content, directory, fileName); } public static DeviceIntroductionInfo getIntroductionInfoCache(String model, String lan) throws BusinessException { // 读缓存 String directory = getCachePath(); String contentJson = getJsonFromFile(directory, model+"_"+lan+"_"+ FileSaveHelper.INTRODUCTION_INFO_NAME); if (TextUtils.isEmpty(contentJson)) { throw new BusinessException(BusinessErrorCode.BEC_COMMON_NULL_POINT); } DeviceLeadingInfoData.Response response = null; try { Gson gson = new Gson(); response = gson.fromJson(contentJson, DeviceLeadingInfoData.Response.class); } catch (Exception e) { e.printStackTrace(); throw new BusinessException(BusinessErrorCode.BEC_COMMON_NULL_POINT); } if (response == null || response.data == null || response.data.introductions == null) { throw new BusinessException(BusinessErrorCode.BEC_COMMON_NULL_POINT); } return DeviceAddEntityChangeHelper.parse2DeviceIntroductionInfo(response.data); } private static String getCachePath() { String userId = LCDeviceEngine.newInstance().userId; return LCDeviceEngine.newInstance().commonParam.getContext().getFilesDir() + File.separator + userId + File.separator; } private static void writeToFile(String content, String directory, String fileName) { // mobile SD card path +path BufferedWriter os = null; File file = new File(directory); try { if (!file.exists()) { if (!file.mkdirs()) { return; } } file = new File(file, fileName); os = new BufferedWriter(new FileWriter(file), 1024); os.write(content); os.flush(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (os != null) { os.close(); } } catch (IOException e) { e.printStackTrace(); } } } private static String getJsonFromFile(String dirctory, String fileName) { // mobile SD card path +path BufferedReader os = null; StringBuffer stringBuffer = new StringBuffer(); File file = new File(dirctory, fileName); try { if (!file.exists()) { return ""; } os = new BufferedReader(new FileReader(file)); String line = ""; while ((line = os.readLine()) != null) { stringBuffer.append(line); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (os != null) { os.close(); } } catch (IOException e) { e.printStackTrace(); } } return stringBuffer.toString().trim(); } }