OutputStream para ler e escrever  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
aloizio
JavaTeenager

Membro desde: 23/02/2005 17:29:02
Mensagens: 171
Offline

Pessoal,

Tenho um código já implementado que usa PrintWriter para armazenar um arquivo XML. Preciso refatorar este código para obter este arquivo como OutputStream.

Alguem sabe como posso fazer um OutputStream ler e escrever ao mesmo tempo. Pois tenho que armazenar este arquivo ao mesmo tempo em disco e no banco de dados. Como estou usando Blob preciso de um outputstream.
foia
JavaGuru
[Avatar]

Membro desde: 26/09/2003 16:29:51
Mensagens: 212
Localização: tiquipaya city
Offline

para ler e escrever é complicado.

tentou usar java.io.ByteArrayOutputStream
http://java.sun.com/j2se/1.5.0/docs/api/java/io/ByteArrayOutputStream.html

fôia
-----------------------
Ahhhhh meu saquinho !!!
[WWW]
aloizio
JavaTeenager

Membro desde: 23/02/2005 17:29:02
Mensagens: 171
Offline

Mas onde é configurado o nome do arquivo?

ByteArrayOutputStream()
aloizio
JavaTeenager

Membro desde: 23/02/2005 17:29:02
Mensagens: 171
Offline

O código esta assim:

PrintWriter pw = new PrintWriter( new java.io.OutputStreamWriter( new java.io.FileOutputStream( aFilename ), fileencoding ));
pw.println();
pw.println();
pw.println();
pw.println(); .... pw.close();

Preciso permanecer com o pw em arquivo para gravar no disco e tambem garvar no banco. Para eu gravar no banco preciso d eum outputstream. Como mudar o código anterior?
foia
JavaGuru
[Avatar]

Membro desde: 26/09/2003 16:29:51
Mensagens: 212
Localização: tiquipaya city
Offline

isso é pra log ?!
c vai gravar string no banco ou um array de bytes ?!
c vai gravar um registro no bd pra cada println ?!

fôia
-----------------------
Ahhhhh meu saquinho !!!
[WWW]
Rubem Azenha
GUJ Master
[Avatar]

Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline

Para ler e escrever em um arquivo use a classe RandomAccessFile
Eu gosto muito dela, tem todos os métodos que você precisa para I/O

This message was edited 1 time. Last update was at 24/06/2005 22:35:14




Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
[WWW]
Daniel Quirino Oliveira
Moderador
[Avatar]

Membro desde: 23/03/2003 23:57:34
Mensagens: 3299
Localização: Awawawawa (Araraquara) - SP
Offline

OutputStream, como o nome já sugere, é usado apenas para SAÍDA de dados da sua aplicação para algum lugar (arquivo, socket, dispositivo serial...). E, se você se lembrar bem, vai ver que Stream são "dutos" de dados de "mão única", ou seja, ou servem APENAS para escrever ou servem APENAS para ler.
Se você precisar trabalhar com dutos de "mão dupla", uma alternativa é usar Channels, do java.nio (pode ser um Channel baseado em RandomAccessFile, como já sugerido).
Dá uma caçada na seção de artigos do GUJ para ler mais a respeito de NIO

Daniel Quirino Oliveira
[Email] [WWW]
AllMighty
Java Ninja
[Avatar]

Membro desde: 16/08/2004 17:21:42
Mensagens: 266
Localização: São Paulo
Offline

Também podem ser úteis a PipedOutputStream e PipedInputStream.

Rafael de F. Ferreira
Blog: http://www.rafaelferreira.net/
Links miscelâneos: http://stoa.usp.br/rafaelferreira
[Email] [WWW] [MSN] [ICQ]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team