| | |
| | | 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; |
| | |
| | | import java.io.FileOutputStream; |
| | | import java.io.InputStream; |
| | | import java.io.InputStreamReader; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | |
| | | private static volatile HdlFileLogic sHdlFileLogic; |
| | | |
| | | /** |
| | | * 表示1m数据 |
| | | * 表示1m大小数据 |
| | | */ |
| | | private final int m = 1; |
| | | |
| | |
| | | * 获取手机内部存储文件路径 |
| | | */ |
| | | 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 version 驱动版本 |
| | | * @return 全路径 |
| | | */ |
| | | public String getFirmwarePathFileName(String oid, String version) { |
| | | String fileName = oid + "_" + version + ".zip"; |
| | | return HdlFileLogic.getInstance().getFirmwareRootPath() + "/" + fileName; |
| | | } |
| | | |
| | | //endregion |
| | |
| | | public void createDirectory() { |
| | | //存放住宅信息 |
| | | this.createFileDir(this.getCurrentHomeRootPath()); |
| | | //驱动文件 |
| | | this.createFileDir(this.getDriveRootPath()); |
| | | //固件文件 |
| | | this.createFileDir(this.getFirmwareRootPath()); |
| | | |
| | | } |
| | | |
| | | /** |
| | |
| | | * @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()) { |
| | |
| | | } |
| | | } |
| | | FileOutputStream d = new FileOutputStream(file); |
| | | d.write(data.getBytes()); |
| | | d.write(data); |
| | | d.flush(); |
| | | d.close(); |
| | | System.out.println("写入文件成功==" + fullPath); |
| | |
| | | System.out.println("写入文件有异常==" + e.getMessage()); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 写入文件 |
| | | * |
| | | * @param fullPath 全路径 |
| | | * @param data 数据 |
| | | */ |
| | | public void writeFile(String fullPath, String data) { |
| | | writeFile(fullPath, data.getBytes()); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @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 路径 |