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?
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?
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);
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.
If you already have the file's contents in a byte array byte[] you can simply use the appropriate constructor String(byte[], Charset).
But be aware that some charsets use more than one byte per character, so you probably do not want to use UTF-8 but for example US-ASCII.