From cdf49871675e42a5576f725a93eec7ca15294c6f Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 15 四月 2025 17:22:34 +0800
Subject: [PATCH] Merge branch '1.5.2'

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java |  589 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 512 insertions(+), 77 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java
index a4454fe..c476bb2 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java
@@ -1,22 +1,47 @@
 package com.hdl.photovoltaic.other;
 
+import android.content.Context;
+import android.content.res.AssetManager;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
-import android.util.Log;
+import android.os.Environment;
+import android.text.TextUtils;
 
 import com.hdl.photovoltaic.HDLApp;
+import com.hdl.photovoltaic.config.ConstantManage;
+import com.hdl.photovoltaic.config.UserConfigManage;
+import com.hdl.photovoltaic.utils.LocalManageUtil;
+
+import org.apache.commons.io.FileUtils;
 
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
+import java.io.BufferedReader;
 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 java.util.Objects;
 
+/**
+ * 鏂囦欢鎿嶄綔鐨勯�昏緫
+ */
 public class HdlFileLogic {
 
     private static volatile HdlFileLogic sHdlFileLogic;
 
+    /**
+     * 琛ㄧず0.5m澶у皬鏁版嵁
+     */
+    private final double mDataSize = 0.5;
+
+    /**
+     * 鑾峰彇褰撳墠瀵硅薄
+     *
+     * @return HdlFileLogic
+     */
     public static synchronized HdlFileLogic getInstance() {
         if (sHdlFileLogic == null) {
             synchronized (HdlFileLogic.class) {
@@ -31,122 +56,531 @@
 
     private static final String TAG = "FileUtils";
 
-    public static final String userId = "";
+    private String getUserId() {
+        return UserConfigManage.getInstance().getUserId();
+    }
+
+    private String getHomeId() {
+        return UserConfigManage.getInstance().getHomeId();
+    }
+    //region    ---------root璺緞-----------
 
     /**
-     * 鑾峰彇鍐呴儴瀛樺偍鏂囦欢璺緞
+     * 鑾峰彇鎵嬫満鍐呴儴瀛樺偍鏂囦欢璺緞
      */
-    private String getInternalStoreFilesPath() {
-        return HDLApp.getInstance().getFilesDir().getAbsolutePath();
+    public String getAPPInternalStoreFilesPath() {
+        return Objects.requireNonNull(HDLApp.getInstance().getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS)).getPath();
     }
 
     /**
-     * 鑾峰彇App瀛樻斁鏂囦欢鐨勬牴璺緞
+     * 鑾峰彇瀛樻斁銆愮敤鎴锋枃浠跺す銆戞牴璺緞
      */
-    public String getAppFilesPath() {
-        return HDLApp.getInstance().getFilesDir().getAbsolutePath() + userId + "/home";
+    public String getCurrentUserRootPath() {
+        return getAPPInternalStoreFilesPath() + "/" + getUserId();
     }
 
-    public File createFile(String dirPath, String fileName) {
+    /**
+     * 鑾峰彇瀛樻斁銆愪綇瀹呮枃浠跺す銆戞牴璺緞
+     */
+    public String getCurrentHomeRootPath() {
+        return getCurrentUserRootPath() + "/" + "home_" + getHomeId();
+    }
+
+    /**
+     * 鑾峰彇瀛樻斁銆愰┍鍔ㄦ枃浠跺す銆戞牴璺緞
+     */
+    public String getDriveRootPath() {
+        return getAPPInternalStoreFilesPath() + "/upgrade/drive";
+    }
+
+
+    /**
+     * 鑾峰彇瀛樻斁銆愬浐浠舵枃浠跺す銆戞牴璺緞
+     */
+    public String getFirmwareRootPath() {
+        return getAPPInternalStoreFilesPath() + "/upgrade/firmware";
+    }
+
+    /**
+     * 鑾峰彇涓枃銆恓son璧勬簮鏂囦欢澶广�戝叏璺緞
+     *
+     * @param deviceModel 璁惧鍨嬪彿
+     */
+    public String getHdlESLocalJsonZhRootPath(String deviceModel) {
+        return getAPPInternalStoreFilesPath() + "/hdlESLocalJson/" + LocalManageUtil.zh + "/" + deviceModel;
+    }
+
+    /**
+     * 鑾峰彇鑻辨枃銆恓son璧勬簮鏂囦欢澶广�戝叏璺緞
+     *
+     * @param deviceModel 璁惧鍨嬪彿
+     */
+    public String getHdlESLocalJsonEnRootPath(String deviceModel) {
+        return getAPPInternalStoreFilesPath() + "/hdlESLocalJson/" + LocalManageUtil.en + "/" + deviceModel;
+    }
+
+
+    /**
+     * 鑾峰彇銆愭棩蹇楁枃浠躲�戝叏璺緞
+     */
+    public String getLogFileNamePath() {
+        return getCurrentHomeRootPath() + "/log.txt";
+    }
+
+
+    /**
+     * 鑾峰彇銆愮敤鎴锋枃浠躲�戝叏璺緞
+     */
+    public String getUserFilePath() {
+        return getAPPInternalStoreFilesPath() + "/userConfigManage.txt";
+    }
+
+    /**
+     * 鑾峰彇涓枃銆恓son璧勬簮鏂囦欢銆戝叏璺緞
+     */
+    public String getHdlESLocalJsonZhFilePath(String deviceModel, String fileName) {
+        if (!fileName.endsWith(".json")) {
+            fileName += ".json";
+        }
+        return getAPPInternalStoreFilesPath() + "/hdlESLocalJson/" + LocalManageUtil.zh + "/" + deviceModel + "/" + fileName;
+    }
+
+    /**
+     * 鑾峰彇鑻辨枃銆恓son璧勬簮鏂囦欢銆戝叏璺緞
+     */
+    public String getHdlESLocalJsonEnFilePath(String deviceModel, String fileName) {
+        if (!fileName.endsWith(".json")) {
+            fileName += ".json";
+        }
+        return getAPPInternalStoreFilesPath() + "/hdlESLocalJson/" + LocalManageUtil.en + "/" + deviceModel + "/" + fileName;
+    }
+
+
+    /**
+     * 鑾峰彇椹卞姩鍗囩骇鏂囦欢鍏ㄨ矾寰�
+     *
+     * @param driverCode 椹卞姩缂栫爜
+     * @param version    椹卞姩鐗堟湰
+     * @return 鍏ㄨ矾寰�
+     */
+    public String getDrivePathFileName(String driverCode, String version) {
+        String fileName = driverCode + "_" + version + ".zip";
+        return HdlFileLogic.getInstance().getDriveRootPath() + "/" + fileName;
+    }
+
+    /**
+     * 鑾峰彇鍥轰欢鍗囩骇鏂囦欢鍏ㄨ矾寰�
+     *
+     * @param imageId 闀滃儚id
+     * @param version 椹卞姩鐗堟湰
+     * @return 鍏ㄨ矾寰�
+     */
+    public String getFirmwarePathFileName(String imageId, String version) {
+        String fileName = imageId + "_" + version + ".zip";
+        return HdlFileLogic.getInstance().getFirmwareRootPath() + "/" + fileName;
+    }
+
+    //endregion
+
+    //region    ---------銆愭枃浠跺す銆戞搷浣�-----------
+
+    /**
+     * 棰勫垱寤烘枃浠跺す
+     */
+    public void createDirectory() {
+        //瀛樻斁浣忓畢淇℃伅
+        this.createFileDir(this.getCurrentHomeRootPath());
+        //椹卞姩鏂囦欢
+        this.createFileDir(this.getDriveRootPath());
+        //鍥轰欢鏂囦欢
+        this.createFileDir(this.getFirmwareRootPath());
+
+    }
+
+    /**
+     * 棰勫垱寤簀son璧勬簮鏂囦欢澶�
+     */
+    public void createHdlESLocalJsonDirectory() {
+        //涓枃鏂囦欢澶�
+
+        this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.INV));//閫嗗彉鍣�
+        this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.LC));//璐熻浇涓績
+        this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.INV_BMS));//BMS
+        this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.INV_BATTERY));//鐢垫睜鍖�
+        //绂荤嚎閫嗗彉鍣�
+        this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.OFF_INV));//绂荤嚎閫嗗彉鍣�
+        this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.OFF_INV_BMS));//绂荤綉閫嗗彉鍣ㄨ櫄鎷烞MS
+        this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.OFF_INV_BATTERY));//绂荤綉閫嗗彉鍣ㄧ數姹犲寘
+
+
+        //鑻辨枃鏂囦欢澶�
+        this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.INV));
+        this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.LC));
+        this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.INV_BMS));
+        this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.INV_BATTERY));
+        //绂荤嚎閫嗗彉鍣�
+        this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.OFF_INV));//绂荤嚎閫嗗彉鍣�
+        this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.OFF_INV_BMS));//绂荤綉閫嗗彉鍣ㄨ櫄鎷烞MS
+        this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.OFF_INV_BATTERY));//绂荤綉閫嗗彉鍣ㄧ數姹犲寘
+
+    }
+
+    /**
+     * 鍒涘缓鏂囦欢澶�
+     *
+     * @param fullPath fullPath 鍏ㄨ矾寰�
+     * @return -
+     */
+    public boolean createFileDir(String fullPath) {
         try {
-            File dirFile = new File(dirPath);
-            if (!dirFile.exists()) {
-                if (!createFileDir(dirFile)) {
-                    HdlLogLogic.print(TAG, "createFile dirFile.mkdirs fail");
-                    return null;
-                }
-            } else if (!dirFile.isDirectory()) {
-                boolean delete = dirFile.delete();
-                if (delete) {
-                    return createFile(dirPath, fileName);
-                } else {
-                    HdlLogLogic.print(TAG, "createFile dirFile !isDirectory and delete fail");
-                    return null;
-                }
+            File file = new File(fullPath);
+            if (!file.isDirectory()) {
+                boolean succeed = file.mkdirs();
+                System.out.println("鍒涘缓鏂囦欢澶硅矾寰�---" + file.getAbsolutePath() + "===鍒涘缓鏂囦欢澶圭粨鏋�---" + succeed);
+                return succeed;
             }
-            File file = new File(dirPath, fileName);
-            if (!file.exists()) {
-                if (!file.createNewFile()) {
-                    Log.e(TAG, "createFile createNewFile fail");
-                    return null;
-                }
-            }
-            return file;
+            return true;
         } catch (Exception e) {
-            HdlLogLogic.print(TAG, "createFile fail :" + e.getMessage());
-            e.printStackTrace();
-            return null;
+            System.out.println("鍒涘缓鏂囦欢澶规湁寮傚父===" + e.getMessage());
+            return false;
+        }
+    }
+
+
+    /**
+     * 鍒犻櫎鏂囦欢澶�
+     *
+     * @param fullPath 鍏ㄨ矾寰�
+     */
+    public void deleteDirectory(String fullPath) {
+        try {
+            File fileRoot = new File(fullPath);
+            if (fileRoot.isDirectory()) {
+                File[] listFiles = fileRoot.listFiles();
+                if (listFiles != null) {
+                    for (File file : listFiles) {
+                        if (file.isDirectory()) {
+                            deleteDirectory(file.getAbsolutePath());
+                        } else {
+                            this.deleteFile(file.getAbsolutePath());
+                        }
+                    }
+                }
+            }
+            // 鍒犻櫎鏂囦欢澶规湰韬�
+            boolean succeed = fileRoot.delete();//鏂囦欢澶圭┖杩欎釜鏂规硶鎵嶆湁鏁�
+            System.out.println("鍒犻櫎鏂囦欢澶硅矾寰�---" + fileRoot.getAbsolutePath() + "===鍒犻櫎缁撴灉---" + succeed);
+        } catch (Exception e) {
+            System.out.println("鍒犻櫎鏂囦欢澶规湁寮傚父===" + e.getMessage());
+        }
+
+    }
+
+
+    //endregion
+
+    //region    ---------銆愭枃浠躲�戞搷浣�-----------
+
+    /**
+     * 鍒涘缓鏂囦欢
+     *
+     * @param fullPath 鍏ㄨ矾寰�
+     * @return -
+     */
+    public boolean createFile(String fullPath) {
+        try {
+            File file = new File(fullPath);
+            if (!file.exists()) {
+                boolean succeed = file.createNewFile();
+                System.out.println("鍒涘缓鏂囦欢璺緞---" + file.getAbsolutePath() + "===鍒涘缓鏂囦欢缁撴灉---" + succeed);
+                return succeed;
+            }
+            return true;
+        } catch (Exception e) {
+            System.out.println("鍒涘缓鏂囦欢鏈夊紓甯�===" + e.getMessage());
+            return false;
         }
     }
 
     /**
-     * 鍒涘缓鏂囦欢澶�---涔嬫墍浠ヨ涓�灞傚眰鍒涘缓锛屾槸鍥犱负涓�娆℃�у垱寤哄灞傛枃浠跺す鍙兘浼氬け璐ワ紒
+     * 鍒犻櫎鏂囦欢
+     *
+     * @param fullPath 鍏ㄨ矾寰�
+     * @return -
      */
-    public boolean createFileDir(File dirFile) {
-        if (dirFile == null) {
-            return true;
-        }
-        if (dirFile.exists()) {
-            return true;
-        }
-        File parentFile = dirFile.getParentFile();
-        if (parentFile != null && !parentFile.exists()) {
-            //鐖舵枃浠跺す涓嶅瓨鍦紝鍒欏厛鍒涘缓鐖舵枃浠跺す锛屽啀鍒涘缓鑷韩鏂囦欢澶�
-            return createFileDir(parentFile) && createFileDir(dirFile);
-        } else {
-            boolean mkdirs = dirFile.mkdirs();
-            boolean isSuccess = mkdirs || dirFile.exists();
-            if (!isSuccess) {
-                Log.e("FileUtil", "createFileDir fail " + dirFile);
+    public boolean deleteFile(String fullPath) {
+        try {
+            File file = new File(fullPath);
+            if (file.exists()) {
+                boolean succeed = file.delete();
+                System.out.println("鍒犻櫎鏂囦欢---" + fullPath + "===缁撴灉---" + succeed);
+                return succeed;
             }
-            return isSuccess;
+            return true;
+        } catch (Exception e) {
+            System.out.println("鍒犻櫎鏂囦欢鏈夊紓甯�===" + e.getMessage());
+            return false;
         }
+
     }
 
-    public void writeFile(String path, String data) {
+
+    /**
+     * 鍐欏叆鏂囦欢
+     *
+     * @param fullPath 鍏ㄨ矾寰�
+     * @param data     鏁版嵁
+     */
+    public void writeFile(String fullPath, byte[] data) {
         try {
-            File file = new File(path);
+            File file = new File(fullPath);
             if (!file.exists()) {
-                if (!file.mkdir() && !file.isDirectory()) {
-                    HdlLogLogic.print(TAG, "Error: make dir failed!");
+                if (!createFile(fullPath)) {
+                    //鍒涘缓澶辫触鐩存帴杩斿洖
                     return;
                 }
             }
             FileOutputStream d = new FileOutputStream(file);
-            d.write(data.getBytes());
+            d.write(data);
             d.flush();
             d.close();
-        } catch (IOException e) {
-            e.printStackTrace();
+            System.out.println("鍐欏叆鏂囦欢鎴愬姛---" + fullPath);
+        } catch (Exception e) {
+            System.out.println("鍐欏叆鏂囦欢鏈夊紓甯�---" + e.getMessage());
         }
 
     }
 
-    public String readFile(String filepath) {
-        try {
-            String fileContent = "";
-            if (null == filepath) {
-                Log.d(TAG, "Error: Invalid file name!");
-                return fileContent;
-            }
+    /**
+     * 鍐欏叆鏂囦欢
+     *
+     * @param fullPath 鍏ㄨ矾寰�
+     * @param data     鏁版嵁
+     */
+    public void writeFile(String fullPath, String data) {
+        writeFile(fullPath, data.getBytes());
+    }
 
-            File f = new File(filepath);
+    /**
+     * 鍐欏叆鏂囦欢(涓�琛屼竴琛岃拷鍔犲唴瀹�)
+     *
+     * @param fullPath 鍏ㄨ矾寰�
+     * @param dataLine 鏁版嵁
+     */
+    public void appendFile(String fullPath, String dataLine) {
+        try {
+            if (!isBoolean(fullPath)) {
+                return;
+            }
+            File file = new File(fullPath);
+            if (!file.exists()) {
+                if (!createFile(fullPath)) {
+                    //鍒涘缓澶辫触鐩存帴杩斿洖
+                    return;
+                }
+            }
+            FileOutputStream d = new FileOutputStream(file, true);
+            d.write(dataLine.getBytes());
+            d.write("\r\n".getBytes());// 鍐欏叆涓�涓崲琛�
+            d.flush();
+            d.close();
+            if (file.length() > 1024 * 1024 * mDataSize) {
+                //鏂囦欢澶т簬1m,鍒犻櫎鏂囦欢鍓�100鏉℃棩蹇�
+                this.delFileLien(fullPath, 100);
+            }
+//            System.out.println("鍐欏叆涓�琛屾暟鎹埌鏂囦欢鎴愬姛---" + dataLine);
+        } catch (Exception e) {
+            System.out.println("鍐欏叆涓�琛屾暟鎹埌鏂囦欢鏈夊紓甯�---" + e.getMessage());
+        }
+
+    }
+
+    /**
+     * 璇诲彇鏂囦欢
+     *
+     * @param filePath 鍏ㄨ矾寰�
+     * @return 鏁版嵁
+     */
+    public byte[] readFileByte1(String filePath) {
+        try {
+            if (!isBoolean(filePath)) {
+                return null;
+            }
+            File f = new File(filePath);
             if (!f.exists()) {
-                return fileContent;
+                return null;
             }
             FileInputStream fis = new FileInputStream(f);
-            byte[] bytes = new byte[fis.available()];
-            fis.read(bytes);
+            byte[] bytes = FileUtils.readFileToByteArray(f);//杩欎釜鏂规硶涓嶅吋鐢╝ndroid 6.0
             fis.close();
-            fileContent = new String(bytes);
-            return fileContent;
+            System.out.println("璇诲彇鏂囦欢鎴愬姛---" + filePath);
+            return bytes;
         } catch (Exception e1) {
-            e1.printStackTrace();
-            Log.d(TAG, "Error: Input File not find!");
+            System.out.println("璇诲彇鏂囦欢鏈夊紓甯�---" + e1.getMessage());
+            return null;
+        }
+
+    }
+
+
+    /**
+     * 璇诲彇鏂囦欢
+     *
+     * @param filePath 鍏ㄨ矾寰�
+     * @return 鏁版嵁
+     */
+    public byte[] readFileByte(String filePath) {
+        try {
+            if (!isBoolean(filePath)) {
+                return null;
+            }
+            File f = new File(filePath);
+            if (!f.exists()) {
+                return null;
+            }
+            FileInputStream fis = new FileInputStream(f);
+            BufferedInputStream bis = new BufferedInputStream(fis);
+            int fileLength = (int) f.length();
+            byte[] bytes = new byte[fileLength];
+            int len = bis.read(bytes);
+            bis.close();
+            fis.close();
+            System.out.println("璇诲彇鏂囦欢鎴愬姛---" + filePath);
+            return bytes;
+        } catch (Exception e1) {
+            System.out.println("璇诲彇鏂囦欢鏈夊紓甯�---" + e1.getMessage());
+            return null;
+        }
+
+    }
+
+    /**
+     * 璇诲彇鏂囦欢
+     *
+     * @param filePath 鍏ㄨ矾寰�
+     * @return 鏁版嵁
+     */
+    public String readFile(String filePath) {
+        try {
+            byte[] bytes = readFileByte(filePath);
+            if (bytes == null) {
+                return "";
+            }
+            return new String(bytes);
+        } catch (Exception e1) {
             return "";
         }
 
     }
+
+    /**
+     * 璇诲彇鏂囦欢
+     *
+     * @param filePath 鍏ㄨ矾寰�
+     * @return 鏁版嵁
+     */
+    public FileInputStream fileStream(String filePath) {
+        try {
+            if (!isBoolean(filePath)) {
+                return null;
+            }
+            File f = new File(filePath);
+            if (!f.exists()) {
+                return null;
+            }
+            fileLength = f.length();
+            return new FileInputStream(f);
+        } catch (Exception e1) {
+            System.out.println("璇诲彇鏂囦欢鏈夊紓甯�---" + e1.getMessage());
+            return null;
+        }
+
+    }
+
+    public static long fileLength = 0;
+
+    /**
+     * 鎸囧畾鍒犻櫎鏂囦欢琛屾暟锛堜粠鍓嶉潰鍒犻櫎璧凤級
+     *
+     * @param filePath   璺緞
+     * @param delLienSum 鍒犻櫎澶氬皯琛屾暟
+     */
+    public void delFileLien(String filePath, int delLienSum) {
+        if (!isBoolean(filePath)) {
+            return;
+        }
+        //鎵撳紑鏂囦欢
+        File file = new File(filePath);
+        //濡傛灉path鏄紶閫掕繃鏉ョ殑鍙傛暟锛屽彲浠ュ仛涓�涓潪鐩綍鐨勫垽鏂�
+        if (file.isDirectory()) {
+            System.out.println("杩欐槸涓�涓洰褰�");
+            return;
+        }
+        StringBuilder content = new StringBuilder(); //鏂囦欢鍐呭瀛楃涓�
+        try {
+            InputStream inputStream = new FileInputStream(file);
+            InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
+            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
+            String line;
+            int lineCount = 0;
+            //鍒嗚璇诲彇
+            while ((line = bufferedReader.readLine()) != null) {
+                lineCount += 1;
+                if (lineCount > delLienSum) {
+                    content.append(line).append("\r\n");
+                }
+            }
+            inputStream.close();
+            //鍒犻櫎鎺夋棫鏂囦欢
+            this.deleteFile(filePath);
+            //閲嶆柊鍒涘缓鏂囦欢骞朵笖鍐欏叆鏁版嵁
+            this.writeFile(filePath, content.toString());
+        } catch (Exception ignored) {
+        }
+    }
+
+    /**
+     * 鎵撳紑璧勬簮鏂囦欢
+     *
+     * @param fileName 鏂囦欢鍚�
+     * @param context  涓婁笅鏂�
+     * @return 杩斿洖json瀛楃涓�
+     */
+    public String openAssetsFileJson(String fileName, Context context) {
+        if (TextUtils.isEmpty(fileName)) {
+            return "";
+        }
+        //灏唈son鏁版嵁鍙樻垚瀛楃涓�
+        StringBuilder stringBuilder = new StringBuilder();
+        try {
+            //鑾峰彇assets璧勬簮绠$悊鍣�
+            AssetManager assetManager = context.getAssets();
+            //閫氳繃绠$悊鍣ㄦ墦寮�鏂囦欢骞惰鍙�
+            BufferedReader bf = new BufferedReader(new InputStreamReader(assetManager.open(fileName)));
+            String line;
+            while ((line = bf.readLine()) != null) {
+                stringBuilder.append(line);
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return stringBuilder.toString();
+    }
+
+    /**
+     * 鍒ゆ柇璺緞鏄惁鍚堟硶
+     *
+     * @param path 璺緞
+     * @return true鍚堟硶
+     */
+    public boolean isBoolean(String path) {
+        if (path.contains("//") || path.contains("\\")) {
+            System.out.println("鏃犳晥鏂囦欢璺緞---" + path);
+            return false;
+        }
+        return true;
+    }
+    //endregion
 
     /**
      * 鎶婁綅鍥炬暟鎹繚瀛樺埌鎸囧畾璺緞鐨勫浘鐗囨枃浠�
@@ -163,9 +597,10 @@
             bos.close();
 
 
-        } catch (Exception e) {
+        } catch (Exception ignored) {
         }
     }
+    //</editor-fold>
 
     /**
      * 浠庢寚瀹氳矾寰勭殑鍥剧墖鏂囦欢涓鍙栦綅鍥炬暟鎹�
@@ -179,10 +614,10 @@
             //鍏抽棴缂撳瓨杈撳叆娴�
             bis.close();
             return bitmap;
-
-
         } catch (Exception e) {
         }
         return null;
     }
+
+
 }

--
Gitblit v1.8.0