Converting binary data to characters in java

18,110

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.

Share:
18,110
user1077980
Author by

user1077980

Updated on June 13, 2022

Comments

  • user1077980
    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?