我想要做的是將 4x8bytes 保存為 64bit Long。并將該 64 位 Long 再次解碼為 4x8bytes。我知道你可能不明白,但我有一個(gè)編碼器,它使用 8 位字節(jié)來(lái)制作 64 位長(zhǎng)。我正在保存其中的多個(gè)示例:“-223784 2432834 -34233566”,我想讀取每個(gè)數(shù)字,當(dāng)“”是字符并將其放入 long[] 時(shí)將其拆分。目前我有這個(gè)代碼: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;}解碼器工作我用我的編碼器測(cè)試過,直接輸入編碼器的輸出。所以肯定有讀取錯(cuò)誤。我真的無(wú)語(yǔ)了,而且我沒有任何想法來(lái)解決這個(gè)問題......
如何將保存在字符串中的多頭更改回多頭
慕標(biāo)琳琳
2021-09-15 10:22:24