2013-03-31 152 views
0

我需要把二進制文件,然後再次得到它,但我需要在文件中使用少量的空間使用(例如16位= 2個字節)二進制字符串表示到文件和字符串再次

byte[] b = new BigInteger("1011010101010110", 2).toByteArray(); 

FileOutputStream fos = new FileOutputStream("file",true); 
fos.write(b); 

我用這個寫的「1011010101010110」以二進制表示的文件(2個字節的空間)

但現在我沒有得到我怎樣才能從文件中讀一遍並再次將其重新轉換爲一串「1011010101010110」。

當我用Notepadd ++打開二進制文件時,它有奇怪的字符(我不知道它是否正常)。

+0

文本編輯器不能解釋的二進制文件。這就是爲什麼你會看到「怪異」的角色。您需要從文件中讀取兩個字節並將其解壓縮。 –

回答

0

我想你可以轉換Binary to Integers(佔用較少的空間,因爲它們有較少的字符,例如;二進制1001 ==十進制9),然後寫入文件(如String)。

雖然讀回,你可以轉換decimals to binary再次

+0

我需要以另一種方式做,使用霍夫曼算法,二進制序列將變得很大,並且必須以二進制形式寫入文件。 – CmchPt

+0

二進制寫1001的建議是隻需要4位,String中的小數點9取8位。 – CmchPt