Transformar um InputStream para uma string

6 respostas
cubas

Galera.
Estou lendo um arquivo zip. Ele me retorna um InputStream do arquivo para que ele seja descompactado mas eu gostaria de pegar este InputStream e transformá-lo em uma string para gravar em banco de dados. Segue abaixo o codigo

public static final void copyInputStream(InputStream in) throws IOException {
	byte[] buffer = new byte[1024];
	int len;
	while((len = in.read(buffer)) >= 0)

/* E AGORA O QUE FAÇO PARA TRANSFORMAR
O IN EM UM STRING PARA GRAVAR NO BANCO 
DE DADOS :? */

in.close();

  }

Valeu galera
CArlos

6 Respostas

D

já tentou assim? não vejo problema desse modo

public static final void copyInputStream(InputStream in)  throws IOException {

byte[] buffer = new byte[1024];

int len;

[color=red”]	   String s = “”;[/color]

while((len = in.read(buffer)) >= 0)

[color=red”]			   s += “”+len;[/color]
in.close(); 
  }
cv1

Colocar um arquivo binario (zip) dentro de uma String eh pedir pra ter bugs horrendos. Continue usando o byte[] mesmo, e grave no banco como BLOB. :wink:

cubas

Galera,
Valeu pelo toque. Funcionou bls.
Quanto a colocar um arquivo binario dentro do zip, é que os arquivos zipados são todos txt e eu tenho que colocar num campo clob.
Tenho como fazer isto num campo clob e não blob. ??

Valeu pela força
Cubas

louds

“cubas”:
Galera,
Valeu pelo toque. Funcionou bls.
Quanto a colocar um arquivo binario dentro do zip, é que os arquivos zipados são todos txt e eu tenho que colocar num campo clob.
Tenho como fazer isto num campo clob e não blob. ??

Valeu pela força
Cubas

Descubra o charset dos teus arquivos, então use um reader para ler de forma correta em 1 char[] e depois converter p/ String usando 1 StringBuffer, apesar da melhor opção seria usar 1 PreparedStatement e setCharacterStream

cubas

Desta maneira eu poderia salvar os meus caracteres como utf8. ???
Como isto seria possível, vc teria algum exemplo ???
Valeu
Cubas

louds
void fazIsso(PreparedStatement stmt, InputStream in, int param) throws SQLException, UnsupportedEncodingException {
  stmt.setCharacterStream(param, new InputStreamReader(in, "UTF-8"), 666);
}
Criado 6 de maio de 2004
Ultima resposta 6 de mai. de 2004
Respostas 6
Participantes 4