package testElectronJ; import lombok.extern.slf4j.Slf4j; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; @Slf4j public class FboDataInf { public static final int DataType_Dis = 0xFD; //放电 public static final int DataType_Char = 0xFC; //充电 public static final int DataType_Peac = 0xFB; //常规 public List fboData; public FboDataHeadStart fboDataStart; public FboDataHeadStop fboDataStop; public FboDataInf() { fboData = new ArrayList(); fboDataStart = new FboDataHeadStart(); fboDataStop = new FboDataHeadStop(); } public void readFboFile(String filePath) { FileInputStream fis = null; try { File f = new File(filePath); if(!f.exists()) { System.out.println("文件不存在.........."); } fis = new FileInputStream(f); byte[] buf = new byte[256]; if(fis.read(buf, 0, buf.length) == 256) { this.fboDataStart.setDataInf(buf,this.fboDataStop); FboData.DataType mType = new FboData().new DataType(); while(true) { int tag = mType.checkDataHead(fis); if((0xFD == tag) || (0xFC == tag) || (0xFB == tag)) { byte[] databuf = new byte[this.fboDataStart.BattGroup*14 + 40]; if(fis.read(databuf) == databuf.length) { FboData m_FboData = new FboData(this.fboDataStart.BattGroup); m_FboData.m_DataType = mType; m_FboData.setData(databuf); fboData.add(m_FboData); } } if(tag == 1) break; } } } catch (IOException e) { e.printStackTrace(); //log.error(e.toString()); } finally { if(null != fis) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); //log.error(e.toString()); } } } } public static void main(String[] args) { FboDataInf fbo = new FboDataInf(); //fbo.readFboFile("D:/test/F2022-03-09 11.26.12.FBX"); //fbo.readFboFile("D:/test/F2022-03-09 16.22.37.FBX"); //fbo.readFboFile("D:/test/F2022-03-10 11.12.30.FBX"); fbo.readFboFile("C:\\Users\\Administrator\\Documents\\WeChat Files\\wxid_zdl14lk119zg21\\FileStorage\\File\\2022-03\\F2022-03-16 23.45.56(1).FBX"); } }