簡體   English   中英

Java:以最節省內存的方式存儲位

[英]Java: Storing bits in the most memory efficient manner

我編寫了一個算法來實現Huffman Coding來壓縮文本文件。 它基本上將字符串作為輸入,並生成一串位作為輸出。 但是,我在存儲這個二進制數據時遇到了問題,因為它存儲為一個字符串,其中每個位都是一個字符,並占用2個字節的內存用於存儲。 最終結果,輸出文件大於輸入,使整個程序一文不值。 我應該如何存儲這個二進制輸出,使每個位只占用一位內存用於存儲? PS。 我嘗試過使用BitSet,但根本沒有改變輸出的大小

將結果BitSet ,即可調用

BitSet.toByteArray()將數據保存到文件中,即:

FileUtils.writeByteArrayToFile(new File(...), bitSet.toByteArray());

BitSet.valueOf(byte[])從文件中讀取數據:

BitSet bitSet = new BitSet(FileUtils.readFileToByteArray(new File(...)));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM