У меня есть файл, который содержит строку, за которой следуют байты, содержащие двоичные числа, закодированные в них.Как декодировать байты из файла, содержащего строки в java?
Thisisastring. �J
В моем коде я пытаюсь игнорировать строку и сосредоточиться на декодировании байтов, разделенных пробелом. Когда я запускаю код, результат кажется правильным, за исключением того, что первый двоичный номер отключен множеством.
StringBuffer buffer = new StringBuffer();
File file = new File(arg);
FileInputStream in = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(in, "UTF8");
Reader inn = new BufferedReader(isr);
int ch;
while ((ch = inn.read()) > -1){
buffer.append((char)ch);
}
inn.close();
String content = buffer.toString();
String temp = new String();
for(int i=0; i<content.length(); i++){
temp += content.charAt(i);
if(content.charAt(i) == ' '){
while(i != content.length()-1){
i++;
byte b = (byte) content.charAt(i);
String x = Integer.toString(b & 0xFF, 2);
System.out.println(x);
}
}
}
Результаты:
11111101 <- Why is only this one incorrect?
11000
1001010
1011
Что ожидается:
10010101
00011000
01001010
1011