Conversão de Array de Bytes para String

6 respostas
M

Caros,
Tenho uma necessidade de pegar a string de um array de bytes.
Por exemplo:
Tenho a variavel “arByte”, se uso arByte.toString(). ele me retorna o hexadecimal. Mas não é isto o que quero.

Serei mais especifico:
Na variavel arByte tenho um arquivo PDF, e quero pegar o conteúdo string disto, que no caso seria:

%PDF-1.3
%Çì?¢
1 0 obj
<</Type /Catalog
/Pages 2 0 R
/Metadata 118 0 R

endobj

2 0 obj
<</Type /Pages
/Kids [81 0 R]
/Count 24

endobj

3 0 obj
<</Producer (?03Oc?ð4T>? ?H?TD?qQNO?_??F?ó#ìÆ?ãhÚ)

endobj

Porem seu uso arByte.toString() me retorna tudo em hexadecimal.

Na plataforma .Net, existem coisas utilizando o encoding e você consegue pegar esta string, porém no Java não achei nada que pudesse me retornar isto a partir do array de byte.

Alguém sabe de algo ? Podem me ajudar?

Abs

6 Respostas

ViniGodoy

Já tentou o próprio construtor da classe String?

String pdf = new String(arBytes);
M

Excelente dica, já converteu bem.
Porém ta algum problema de charset, como posso forçar para usar UTF-8 ou ISO8859-1 ?!?
A conversão foi feita, mas houve alguns problemas que creio seja de Encoding ou Charset.
vlw

ViniGodoy

Vou te dar uma dica:
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#String(byte[],%20java.lang.String)

Consulte o javadoc.

J

Sobrescreve o método toString().

thiago.correa

:shock: a classe String é final, o que quer dizer que ela não pode ser extendida, logo por sua vez, é impossível sobreescrever o método toString da classe String (e das demais classes wrappers)!

J

Então o método toString() pertence a classe Object, logo toda classe que vc criar automáticamente vai dar um “extends” implícito na classe Object, deste modo vc pode sobrescrever e sobrecarregar o método toString().

O código em hexa que vc recebe do seu método toString() é uma representação em hexa do código de Hashin que é o padrão deste método … Resumindo vc pode sobrescrever este método.

Class Object

java.lang.Object

public class Object // Classe object

Class Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, including arrays, implement the methods of this class.

// Tirado da API
Since:
JDK1.0
See Also:
Class

Constructor Summary
Object()

String toString() // Metodo toString
Returns a string representation of the object.

Criado 27 de agosto de 2008
Ultima resposta 28 de ago. de 2008
Respostas 6
Participantes 4