| | |
| | | package com.hdl.photovoltaic.other; |
| | | |
| | | import android.content.Context; |
| | | import android.content.res.AssetManager; |
| | | import android.graphics.Bitmap; |
| | | import android.graphics.BitmapFactory; |
| | | import android.os.Environment; |
| | | import android.text.TextUtils; |
| | | |
| | | import com.hdl.photovoltaic.HDLApp; |
| | | import com.hdl.photovoltaic.config.UserConfigManage; |
| | |
| | | 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.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | |
| | | private static volatile HdlFileLogic sHdlFileLogic; |
| | | |
| | | /** |
| | | * 表示1m大小数据 |
| | | * 表示0.5m大小数据 |
| | | */ |
| | | private final int m = 1; |
| | | private final double mDataSize = 0.5; |
| | | |
| | | /** |
| | | * 获取当前对象 |
| | |
| | | return getAPPInternalStoreFilesPath() + "/upgrade/firmware"; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取【日志文件】全路径 |
| | | */ |
| | |
| | | * @return 全路径 |
| | | */ |
| | | public String getDrivePathFileName(String driverCode, String version) { |
| | | String driverFileName = driverCode + "_" + version + ".zip"; |
| | | return HdlFileLogic.getInstance().getDriveRootPath() + "/" + driverFileName; |
| | | 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 |
| | |
| | | File file = new File(fullPath); |
| | | if (!file.isDirectory()) { |
| | | boolean succeed = file.mkdirs(); |
| | | System.out.println("创建文件夹路径=" + file.getAbsolutePath() + "->->创建文件夹结果=" + succeed); |
| | | System.out.println("创建文件夹路径---" + file.getAbsolutePath() + "===创建文件夹结果---" + succeed); |
| | | return succeed; |
| | | } |
| | | return true; |
| | |
| | | } |
| | | // 删除文件夹本身 |
| | | boolean succeed = fileRoot.delete();//文件夹空这个方法才有效 |
| | | System.out.println("删除文件夹路径=" + fileRoot.getAbsolutePath() + "->->删除结果=" + succeed); |
| | | System.out.println("删除文件夹路径---" + fileRoot.getAbsolutePath() + "===删除结果---" + succeed); |
| | | } catch (Exception e) { |
| | | System.out.println("删除文件夹有异常===" + e.getMessage()); |
| | | } |
| | |
| | | File file = new File(fullPath); |
| | | if (!file.exists()) { |
| | | boolean succeed = file.createNewFile(); |
| | | System.out.println("创建文件路径=" + file.getAbsolutePath() + "->->创建文件结果=" + succeed); |
| | | System.out.println("创建文件路径---" + file.getAbsolutePath() + "===创建文件结果---" + succeed); |
| | | return succeed; |
| | | } |
| | | return true; |
| | |
| | | File file = new File(fullPath); |
| | | if (file.exists()) { |
| | | boolean succeed = file.delete(); |
| | | System.out.println("删除文件===" + succeed); |
| | | System.out.println("删除文件---" + fullPath + "===结果---" + succeed); |
| | | return succeed; |
| | | } |
| | | return true; |
| | |
| | | d.write(data); |
| | | d.flush(); |
| | | d.close(); |
| | | System.out.println("写入文件成功==" + fullPath); |
| | | System.out.println("写入文件成功---" + fullPath); |
| | | } catch (Exception e) { |
| | | System.out.println("写入文件有异常==" + e.getMessage()); |
| | | System.out.println("写入文件有异常---" + e.getMessage()); |
| | | } |
| | | |
| | | } |
| | |
| | | d.write("\r\n".getBytes());// 写入一个换行 |
| | | d.flush(); |
| | | d.close(); |
| | | if (file.length() > 1024 * 1024 * m) { |
| | | //文件大于1m,删除文件前10条日志 |
| | | this.delFileLien(fullPath, 10); |
| | | if (file.length() > 1024 * 1024 * mDataSize) { |
| | | //文件大于1m,删除文件前100条日志 |
| | | this.delFileLien(fullPath, 100); |
| | | } |
| | | System.out.println("写入一行数据到文件成功===" + dataLine); |
| | | // System.out.println("写入一行数据到文件成功---" + dataLine); |
| | | } catch (Exception e) { |
| | | System.out.println("写入一行数据到文件有异常===" + e.getMessage()); |
| | | 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 null; |
| | | } |
| | | FileInputStream fis = new FileInputStream(f); |
| | | byte[] bytes = FileUtils.readFileToByteArray(f);//这个方法不兼用android 6.0 |
| | | fis.close(); |
| | | System.out.println("读取文件成功---" + filePath); |
| | | return bytes; |
| | | } catch (Exception e1) { |
| | | System.out.println("读取文件有异常---" + e1.getMessage()); |
| | | return null; |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 读取文件 |
| | |
| | | return null; |
| | | } |
| | | FileInputStream fis = new FileInputStream(f); |
| | | byte[] bytes = FileUtils.readFileToByteArray(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); |
| | | System.out.println("读取文件成功---" + filePath); |
| | | return bytes; |
| | | } catch (Exception e1) { |
| | | System.out.println("读取文件有异常===" + e1.getMessage()); |
| | | System.out.println("读取文件有异常---" + e1.getMessage()); |
| | | return null; |
| | | } |
| | | |
| | |
| | | fileLength = f.length(); |
| | | return new FileInputStream(f); |
| | | } catch (Exception e1) { |
| | | System.out.println("读取文件有异常===" + e1.getMessage()); |
| | | System.out.println("读取文件有异常---" + e1.getMessage()); |
| | | return null; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * 打开资源文件 |
| | | * |
| | | * @param fileName 文件名 |
| | | * @param context 上下文 |
| | | * @return 返回json字符串 |
| | | */ |
| | | public String openAssetsFileJson(String fileName, Context context) { |
| | | if (TextUtils.isEmpty(fileName)) { |
| | | return ""; |
| | | } |
| | | //将json数据变成字符串 |
| | | 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 路径 |
| | |
| | | */ |
| | | public boolean isBoolean(String path) { |
| | | if (path.contains("//") || path.contains("\\")) { |
| | | System.out.println("无效文件路径===" + path); |
| | | System.out.println("无效文件路径---" + path); |
| | | return false; |
| | | } |
| | | return true; |