Foros del Web » Programación para mayores de 30 ;) » Java »

ayuda con OutputStream

Estas en el tema de ayuda con OutputStream en el foro de Java en Foros del Web. Hola soy nuevo en programación Java. Estoy revisando un código donde en cierta parte tengo un OutpuStream "out" que esta lleno con texto XML, quisiera ...
  #1 (permalink)  
Antiguo 06/01/2006, 22:23
 
Fecha de Ingreso: diciembre-2004
Mensajes: 52
Antigüedad: 19 años, 4 meses
Puntos: 0
ayuda con OutputStream

Hola soy nuevo en programación Java. Estoy revisando un código donde en cierta parte tengo un OutpuStream "out" que esta lleno con texto XML, quisiera que esa variable "out" se vacie en un archivo texto.xml
Como hago?
Gracias.
P.D. Reitero que esa variable out esta cargada con texto XML, la siguiente linea del codigo que estoy revisando es out.flush()
  #2 (permalink)  
Antiguo 07/01/2006, 03:47
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19

Código:
public class FlujoObjetoEscritura {
    public static void main(String[] args) throws IOException {

	FileOutputStream out = new FileOutputStream("mixml.xml");
	ObjectOutputStream s = new ObjectOutputStream(out);
	s.writeObject("<xml>");
        //le pasamos un objeto String y lo escribe en el fichero mixml.xml
        s.writeObject("<etiqueta1>...</etiqueta1>");
        //..... 
        s.writeObject("</xml>");
        s.flush();
    }
}
Espero que te valga .
( http://club.idecnet.com/~ccastano/femepa/171105.htm )
  #3 (permalink)  
Antiguo 07/01/2006, 08:58
 
Fecha de Ingreso: diciembre-2004
Mensajes: 52
Antigüedad: 19 años, 4 meses
Puntos: 0
gracias por responder. no era lo que pregunté pero me ayudó. Lo solucioné de la siguiente manera:
//strategyOuput es un OutputStream que viene de un proceso de extraccion de datos, este strategyOuput va a un objeto HttpServletResponse response para mostrarse en una pagina web. Lo que yo queria hacer es interceptar este outputStream y mandarlo tambien a un archivo en el disco duro (como un historico de todas las respuestas)
...
File fil = new File("D:\\Logs\\file"+ System.currentTimeMillis() +".xml");
FileOutputStream fos = new FileOutputStream(fil);
ObjectOutputStream oos = new ObjectOutputStream (fos);

oos.writeObject(strategyOuput);
oos.flush();

fos.flush();
...

si hay alguna forma mas eficiente de hacer esto, por favor enviarlo.
Gracias.
  #4 (permalink)  
Antiguo 07/01/2006, 12:35
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
¿Y estás seguro de que eso funciona? Por que yo diría que no .

Un object OutputStream es de escritura, así que no se puede leer de el. Lo único que se me ocurre es que "envuelvas" ese OutputStream con otro que te escriba en disco lo que se vaya añadiendo en el stream, por que una vez escrito, en muchos casos no se puede leer.

Y para eso, lo suyo sería usar un FilterOutputStream y derivados. Aqui puedes ver ejemploa de uso parecido, aunque tu solo necesitas la parte del output:
http://www.programacion.com/java/tutorial/io/10/


Saludos
  #5 (permalink)  
Antiguo 07/01/2006, 13:10
 
Fecha de Ingreso: diciembre-2004
Mensajes: 52
Antigüedad: 19 años, 4 meses
Puntos: 0
Tienes razon no funciona, me da un basto error. la idea general de mi problema es convertir un outputStream en inputStream para poder leer los datos y escribirlos en otro flujo de salida (FileOutputStream("otroArchivo.xml"))
Creo que con PipedOutputStream y PipedInputStream puedo hacer eso, pero no se como. Alguien puede ayudar?
Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:51.