import java.io.FileInputStream;
File file = new File("G:\\data.bin");
FileInputStream fin = new FileInputStream(file);
byte[] b= new byte[32]; //创建合适文件大小的数组,数据的长度代表一次读取几个字节
byte bb ;
int j=0;
int num=8;
Map<Integer,List> map=new HashMap();
for(int k=0;k<num;k++){
List list =new ArrayList();
map.put(k,list);
}
long from = 32*2+1;
fin.skip(from-1);//选择从多少行开始读取
double temp;
while((bytesIn = fin.read(b, 0, 32)) != -1)
{
for(int i=0;i<num;i++){//每四个字节一个数,循环解析
temp=getFloat(b,i*4);
map.get(i).add(temp);
}
j++;
}
for(int i=0;i<num;i++){
println map.get(i)
}
float getFloat(byte[] b, int index) { //四字节转换float
int l;
l = b[index + 0];
l &= 0xff;
l |= ((long) b[index + 1] << 8);
l &= 0xffff;
l |= ((long) b[index + 2] << 16);
l &= 0xffffff;
l |= ((long) b[index + 3] << 24);
return Float.intBitsToFloat(l);
}
groovy/java 从特定行开始读取二进制文件
最新推荐文章于 2024-10-24 21:56:06 发布