Método para imprimir Writer(java.io.Writer)

10 respostas
Michel_M

Bom dia

Estou usando o Writer(java.io.Writer) e gostaria de imprimir os dados que foram escritos nele, mais até o momento não achei nada para me ajudar a mostrar os dados que estão contidos nele. Se alguém me ajudar agradeço desde já…

Grato

10 Respostas

lucas_guj

Michel M:
Bom dia

Estou usando o Writer(java.io.Writer) e gostaria de imprimir os dados que foram escritos nele, mais até o momento não achei nada para me ajudar a mostrar os dados que estão contidos nele. Se alguém me ajudar agradeço desde já…

Grato

Coloca a parte do código aqui em que você o cria e grava dados nele. e a parte que quer ler os dados dele.

E

Um Writer é algo onde você escreve (por exemplo, um socket ou um arquivo.)

É possível você fazer uma duplicata (“tee”) dos dados que você escreve em um Writer. Isso envolve encapsular o seu writer (por exemplo, o writer retornado por um socket) em uma classe adicional, que irá gravar uma cópia dos dados em um outro writer (digamos um arquivo).

Há várias classes chamadas “TeeWriter” na Internet (procure por “TeeWriter java” no Google). Faça questão de procurar por TeeWriter, porque por algum motivo o Google pergunta se você não quer uma classe chamada “FileWriter”. )

Michel_M

eu escrevo nele usando toWriter(XMLBuilder)…

private Writer writer;

protected void flush() throws Exception {
    final Properties properties = new Properties();
    properties.put(javax.xml.transform.OutputKeys.METHOD, "xml");
    properties.put(javax.xml.transform.OutputKeys.INDENT, "yes");
    properties.put("{http://xml.apache.org/xslt}indent-amount", "2");
    properties.put(javax.xml.transform.OutputKeys.ENCODING, this.encoding);

    //System.out.println(this.root.asString());
    this.root.toWriter(this.writer, properties);
}
Michel_M

entanglement:
Um Writer é algo onde você escreve (por exemplo, um socket ou um arquivo.)

É possível você fazer uma duplicata (“tee”) dos dados que você escreve em um Writer. Isso envolve encapsular o seu writer (por exemplo, o writer retornado por um socket) em uma classe adicional, que irá gravar uma cópia dos dados em um outro writer (digamos um arquivo).

Há várias classes chamadas “TeeWriter” na Internet (procure por “TeeWriter java” no Google). Faça questão de procurar por TeeWriter, porque por algum motivo o Google pergunta se você não quer uma classe chamada “FileWriter”. )

Dei uma olhada mais não sei como isso vai poder me ajudar…

private Writer writer;  
  
protected void flush() throws Exception {  
    final Properties properties = new Properties();  
    properties.put(javax.xml.transform.OutputKeys.METHOD, "xml");  
    properties.put(javax.xml.transform.OutputKeys.INDENT, "yes");  
    properties.put("{http://xml.apache.org/xslt}indent-amount", "2");  
    properties.put(javax.xml.transform.OutputKeys.ENCODING, this.encoding);  
  
    //System.out.println(this.root.asString());  
    this.root.toWriter(this.writer, properties); 
    System.out.println(this.writer);//imprimir o que foi escrito, mais é claro que aqui só vai imprimir o endereço de memoria 
}
lucas_guj

Já tentou tipo um readLine?

Michel_M

Quem tem esse readLine é BufferedReader, mais o BufferedWriter não tem.

E

Não sei, mas se você fizer isto aqui:

this.root.toWriter(this.writer, properties);   
    this.root.toWriter (new BufferedWriter (System.out), properties);

O que ocorre?

Michel_M

entanglement:
Não sei, mas se você fizer isto aqui:

this.root.toWriter(this.writer, properties);   
    this.root.toWriter (new BufferedWriter (System.out), properties);

O que ocorre?

Mais para que fazer isso??

Ele nem permite pq eu estou passando um argumento invalido. Ele pede um Writer.

E

Ok, é new OutputStreamWriter (System.out), não BufferedWriter (System.out) Errei :slight_smile: (quem manda postar aqui código que não consigo compilar?)

lucas_guj

Quem tem esse readLine é BufferedReader, mais o BufferedWriter não tem.

Então tenta criar um BufferedReader para o seu fluxo.

Criado 20 de julho de 2012
Ultima resposta 21 de jul. de 2012
Respostas 10
Participantes 3