package com.sandu.ximon.admin.manager.iot.rrpc.util;
|
|
import com.sandu.ximon.admin.dto.RemoteFileDto;
|
import com.sandu.ximon.admin.utils.HexUtils;
|
import org.apache.catalina.LifecycleState;
|
|
import java.io.File;
|
import java.io.FileInputStream;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.List;
|
|
/**
|
* @author ZZQ
|
* @date 2022/5/5 14:26
|
*/
|
public class FileProcessingUtils {
|
|
// public static void main(String[] args) {
|
// try {
|
// RemoteFileDto remoteFileDto = read("C:\\Users\\Administrator\\Desktop\\test\\H01_v3.0.12.min.dhcp.bin");
|
// System.out.println(remoteFileDto.getListSize());
|
// System.out.println(remoteFileDto.getList().size());
|
// System.out.println(Arrays.toString(remoteFileDto.getList().get(0)));
|
// } catch (IOException e) {
|
// e.printStackTrace();
|
// }
|
// }
|
|
public static RemoteFileDto read(String filePath) throws IOException {
|
List<String> data = new ArrayList<>();
|
int dataSize = 0;
|
StringBuffer fileHexStr=new StringBuffer();
|
|
File file = new File(filePath);
|
|
InputStream in = new FileInputStream(file);
|
|
// 一次性取多少个字节
|
byte[] bytes = new byte[512];
|
// 读取到的字节数组长度,为-1时表示没有数据
|
int length = 0;
|
// 循环取数据
|
while ((length = in.read(bytes)) != -1) {
|
String temp=HexUtils.encodeHexStr(Arrays.copyOf(bytes, length));
|
data.add(temp);
|
fileHexStr.append(temp);
|
dataSize += length;
|
}
|
|
in.close();
|
|
RemoteFileDto remoteFileDto = new RemoteFileDto();
|
remoteFileDto.setList(data);
|
remoteFileDto.setListSize(dataSize);
|
remoteFileDto.setFileHexStr(fileHexStr.toString());
|
return remoteFileDto;
|
}
|
}
|