亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將保存在字符串中的多頭更改回多頭

如何將保存在字符串中的多頭更改回多頭

慕標琳琳 2021-09-15 10:22:24
我想要做的是將 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;}解碼器工作我用我的編碼器測試過,直接輸入編碼器的輸出。所以肯定有讀取錯誤。我真的無語了,而且我沒有任何想法來解決這個問題......
查看完整描述

2 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

您可以使用一些內置的 String 函數來拆分字符串。之后,您需要對拆分步驟后獲得的所有元素進行一些從 string 到 long 的轉換。


查看完整回答
反對 回復 2021-09-15
?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

為了解決這個問題,我嘗試從我的編碼器和解碼器(充氣器)中移除 Deflater。在那之后它起作用了,所以現在我想知道為什么 Deflater/Inflater 會“破壞”我的 StreamHeader ....

無論如何,抱歉耽誤了您的時間...


查看完整回答
反對 回復 2021-09-15
  • 2 回答
  • 0 關注
  • 208 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號