Estou tendo problema para converter arquivos textos como esse que esta em anexo para binário e depois pegar o arquivo binário e transformar em texto novamente, como o exemplo citado abaixo:
Para converter para binário, a classe Integer é a responsável por converter.
Primeiro, você precisa pegar esse texto e transformar para um array de byte e portanto passar esse array para o Integer, o qual irá fazer a conversão.
O contrário segue a mesma lógica, só que o Integer vai nos retornar o charcode que representa aquele binário. Ai a nossa classe Character nos ajuda.
Exemplo:
publicstaticvoidmain(String[]args)throwsUnsupportedEncodingException{byte[]infoBin=null;infoBin="meu texto aqui \n agora um novo paragrafo".getBytes("UTF-8");finalStringBuildermeuBinario=newStringBuilder("");// De String para Bináriofor(byteb:infoBin){meuBinario.append(Integer.toBinaryString(b)+" ");}System.out.println(meuBinario);// De Binário para Stringfor(Stringbin:meuBinario.toString().split(" ")){finalintcharCode=Integer.parseInt(bin.trim(),2);System.out.print(newCharacter((char)charCode).toString());}}
J
jefersonrl
Ola,
Aplicando o código apresentado, parece que quando é realizado a conversão do binário para texto ocorre erro quando se depara com números no meio do texto.
publicstaticvoidmain(String[]args)throwsUnsupportedEncodingException{byte[]infoBin=null;infoBin="meu texto aqui \n agora um novo paragrafo á í Água 983".getBytes("ISO-8859-1");finalStringBuildermeuBinario=newStringBuilder("");// De String para Bináriofor(byteb:infoBin){meuBinario.append(Integer.toBinaryString(b)+" ");}System.out.println(meuBinario);System.out.println(Charset.defaultCharset().decode(ByteBuffer.wrap(infoBin)).toString());}