【发布时间】:2013-01-15 10:55:22
【问题描述】:
假设我有一个二进制字符串(“0 和 1s”),我想将这个字符串写入二进制文件,如何在 java 中完成?我尝试转换为 ASCII 值字符串,然后从中创建一个 ByteArrayInputStream,但超过 127 的值无法正确显示。谁能帮我这个? 我的 binaryToAscii 方法:
public static String BinaryToAscii(String bin){
int num_of_bytes = bin.length()/8;
StringBuilder sb = new StringBuilder();
int index = 0;
String byte_code;
Character char_code;
for (int i =0; i<num_of_bytes;i++){
index = i*8;
byte_code = bin.substring(index,index+8);
int charCode = Integer.parseInt(byte_code, 2);
char_code = new Character((char)charCode);
sb.append(char_code);
}
return sb.toString();
}
然后我使用
将返回的字符串转换为 ByteArrayInputStreamInputStream is = new ByteArrayInputStream(ascii.toString().getBytes());
【问题讨论】:
-
而不是感谢信,请显示您作为输入的示例以及您希望作为输出的示例。还显示您尝试过的代码会给人留下积极的印象...
-
你的方法不应该返回字符串,它应该返回一个字节[]
-
让它与按位运算符一起工作,谢谢亚历克斯