我想要做的是将 4x8bytes 保存为 64bit Long。并将该 64 位 Long 再次解码为 4x8bytes。
我知道你可能不明白,但我有一个编码器,它使用 8 位字节来制作 64 位长。我正在保存其中的多个示例:“-223784 2432834 -34233566”,我想读取每个数字,当“”是字符并将其放入 long[] 时将其拆分。
目前我有这个代码:
FileInputStream fin = new FileInputStream( IOUtils.path + File.separator + "eclipse.hm" );
String c = "";
long[] longs = new long[1000000];
int b,ggg=0;
while((b=fin.read())!=-1) {
if( (char)b==' ' ) {
longs[ggg++] = Long.parseLong(c);
c = "";
} else {
c+=(char) b;
}
fetched++;
}
fin.close();
我的“解码器”的方法如下:
public static Object decode(long[] input) throws DataFormatException, IOException, ClassNotFoundException {
byte[] toInflate = BitSet.valueOf(input).toByteArray();
Inflater inflater = new Inflater();
inflater.setInput(toInflate);
byte[] deflated = new byte[ toInflate.length*2 ];
inflater.inflate(deflated);
inflater.end();
ObjectInputStream ois = new ObjectInputStream( new ByteArrayInputStream(deflated) );
Object r = ois.readObject();
ois.close();
return r;
}
解码器工作我用我的编码器测试过,直接输入编码器的输出。所以肯定有读取错误。
我真的无语了,而且我没有任何想法来解决这个问题......
慕运维8079593
萧十郎
相关分类