我正在开发一个JPEG解码器(我在霍夫曼相),我想BinaryString的写入文件。例如,假设我们已经这样:
String huff = "00010010100010101000100100";
我已经试过了8将其转换为整数的分裂,并保存它的整数represantation,因为我不能写位:
huff.split("(?<=\\G.{8})"))
int val = Integer.parseInt(str, 2);
out.write(val); //writes to a FileOutputStream
问题是,在我的例子,如果我试图挽救“00010010”也将其转换为18(10010),和我需要0。
最后,当我读到:
int enter;
String code = "";
while((enter =in.read())!=-1) {
code+=Integer.toBinaryString(enter);
}
我有 :
Code = 10010
代替:
Code = 00010010
此外,我一直试图将其转换为位集合,然后为byte [],但我有同样的问题。
你举的例子是,你必须在字符串"10010"
和你想要的字符串"00010010"
。也就是说,你需要离开垫此字符串零。需要注意的是,因为你要加入很多电话的结果,Integer.toBinaryString
在一个循环中,你需要左垫内环路这些字符串,串联在他们面前。
while((enter = in.read()) != -1) {
String binary = Integer.toBinaryString(enter);
// left-pad to length 8
binary = ("00000000" + binary).substring(binary.length());
code += binary;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句