mac
2023-12-06 dd4ddc2c1279157bd87c1b9e1cf6d63aa3466af4
app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java
@@ -7,6 +7,8 @@
import com.hdl.photovoltaic.HDLApp;
import com.hdl.photovoltaic.config.UserConfigManage;
import org.apache.commons.io.FileUtils;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
@@ -15,6 +17,8 @@
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
@@ -25,7 +29,7 @@
    private static volatile HdlFileLogic sHdlFileLogic;
    /**
     * 表示1m数据
     * 表示1m大小数据
     */
    private final int m = 1;
@@ -61,35 +65,75 @@
     * 获取手机内部存储文件路径
     */
    public String getAPPInternalStoreFilesPath() {
        return HDLApp.getInstance().getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getPath();
        return Objects.requireNonNull(HDLApp.getInstance().getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS)).getPath();
    }
    /**
     * 获取存放【用户】文件夹根路径
     * 获取存放【用户文件夹】根路径
     */
    public String getCurrentUserRootPath() {
        return getAPPInternalStoreFilesPath() + "/" + getUserId();
    }
    /**
     * 获取存放【住宅】文件夹根路径
     * 获取存放【住宅文件夹】根路径
     */
    public String getCurrentHomeRootPath() {
        return getCurrentUserRootPath() + "/" + "home_" + getHomeId();
    }
    /**
     * 获取【日志】文件全路径
     * 获取存放【驱动文件夹】根路径
     */
    public String getLogFilePath() {
        return getCurrentHomeRootPath() + "/Log.txt";
    public String getDriveRootPath() {
        return getAPPInternalStoreFilesPath() + "/upgrade/drive";
    }
    /**
     * 获取存放【固件文件夹】根路径
     */
    public String getFirmwareRootPath() {
        return getAPPInternalStoreFilesPath() + "/upgrade/firmware";
    }
    /**
     * 获取【用户】文件全路径
     * 获取【日志文件】全路径
     */
    public String getLogFileNamePath() {
        return getCurrentHomeRootPath() + "/log.txt";
    }
    /**
     * 获取【用户文件】全路径
     */
    public String getUserFilePath() {
        return getAPPInternalStoreFilesPath() + "/UserConfigManage.txt";
        return getAPPInternalStoreFilesPath() + "/userConfigManage.txt";
    }
    /**
     * 获取驱动升级文件全路径
     *
     * @param driverCode 驱动编码
     * @param version    驱动版本
     * @return 全路径
     */
    public String getDrivePathFileName(String driverCode, String version) {
        String fileName = driverCode + "_" + version + ".zip";
        return HdlFileLogic.getInstance().getDriveRootPath() + "/" + fileName;
    }
    /**
     * 获取固件升级文件全路径
     *
     * @param oid     该固件oid
     * @param imageId 镜像id
     * @param version 驱动版本
     * @return 全路径
     */
    public String getFirmwarePathFileName(String oid, String imageId, String version) {
        String fileName = oid + "_" + imageId + "_" + version + ".zip";
        return HdlFileLogic.getInstance().getFirmwareRootPath() + "/" + fileName;
    }
    //endregion
@@ -102,6 +146,11 @@
    public void createDirectory() {
        //存放住宅信息
        this.createFileDir(this.getCurrentHomeRootPath());
        //驱动文件
        this.createFileDir(this.getDriveRootPath());
        //固件文件
        this.createFileDir(this.getFirmwareRootPath());
    }
    /**
@@ -210,7 +259,7 @@
     * @param fullPath 全路径
     * @param data     数据
     */
    public void writeFile(String fullPath, String data) {
    public void writeFile(String fullPath, byte[] data) {
        try {
            File file = new File(fullPath);
            if (!file.exists()) {
@@ -220,7 +269,7 @@
                }
            }
            FileOutputStream d = new FileOutputStream(file);
            d.write(data.getBytes());
            d.write(data);
            d.flush();
            d.close();
            System.out.println("写入文件成功==" + fullPath);
@@ -228,6 +277,16 @@
            System.out.println("写入文件有异常==" + e.getMessage());
        }
    }
    /**
     * 写入文件
     *
     * @param fullPath 全路径
     * @param data     数据
     */
    public void writeFile(String fullPath, String data) {
        writeFile(fullPath, data.getBytes());
    }
    /**
@@ -270,31 +329,73 @@
     * @param filePath 全路径
     * @return 数据
     */
    public String readFile(String filePath) {
    public byte[] readFileByte(String filePath) {
        try {
            if (!isBoolean(filePath)) {
                return "";
                return null;
            }
            String fileContent = "";
            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);
            fis.close();
            System.out.println("读取文件成功===" + filePath);
            fileContent = new String(bytes);
            return fileContent;
            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   路径