Converting binary data to characters in java
Solution 1
This one is also work
String s = "0110100001100101011011000110110001101111";
String str = "";
for (int i = 0; i < s.length()/8; i++) {
int a = Integer.parseInt(s.substring(8*i,(i+1)*8),2);
str += (char)(a);
}
System.out.println(str);
Solution 2
First of al, you'll have to convert Strings of 8 '0' and '1' characters into bytes. This is easily done using Integer.parseInt()
, and converting the int to a byte using
byte b = (byte) (i & 0xFF)
Then you need to create a byte array with all these bytes.
And finally, you need to transform this byte array into a String. This is where you need to decide whcih encoding to use. The same String can be transformed into different byte arrays, depending on the encoding. And all byte sequences don't represent valid characters. Suppose you want to use ASCII as encoding, the use new String(bytes, "ASCII")
. But beware that all bytes bigger than 128 are not valid ASCII characters.
user1077980
Updated on June 13, 2022Comments
-
user1077980 almost 2 years
I have a file in which its content is only 0's and 1's
I want to write a java program that convert each 8 bit of 0's and 1's to char or in other word, to convert the file content from binary to chars.
Which function can I use for that purpose?