Avalados por :

Cómo convertir InputStream en OutputStream en Java: Ejemplo de código correcto

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 0 Vistas
0
Loading...

¡Hola a todos!

Me gustaría codificar mi primer Mapeo JAVA. Para esto, solo me gustaría convertir el InputStream in en OutputStream out .

Esto no funciona:

out = new FileOutputStream(new File(in));

¿Cómo debería ser el código?

Gracias, saludos

Mario

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Loading...

¡Hola Mario!

Estás utilizando el parámetro del constructor incorrectamente. No hay un constructor para el objeto File con parámetro de tipo InpuStreamObject.

http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html

Revisa la documentación de Java.

http://java.sun.com/j2se/1.4.2/docs/api/

Peter

Editado por: Peter Jarunek el 22 de febrero de 2008 a las 10:43 AM

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Loading...

Por cierto: inputstream y outputstream son solo clases abstractas.

¿Qué es exactamente lo que quieres lograr en el mapeo? ¿Por qué estás creando FileOutputStream? ¿Quieres crear un archivo durante el mapeo?

Peter

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Loading...

Mario Müller:

Si solo pasas inputStream a outputStream sin ninguna transformación, puedes usar el siguiente código:

public void execute (InputStream in, OutputStream out) {

try {

int buffer;

while ((buffer = in.read()) != -1) {

out.write(buffer);

} //fin del while

out.flush();

} catch (Exception e) {

throw new StreamTransformationException(e.getMessage(), e);

}

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Loading...

Hola Mario.

¿Quieres convertir la entrada en salida directamente sin hacer ninguna transformación?

La forma en la que siempre lo he hecho es cargar primero el documento de entrada:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

factory.setNamespaceAware(true);

DocumentBuilder builder = factory.newDocumentBuilder();

Document doc = builder.parse(inputStream);

Después de cargar el documento, puedes analizar su contenido con la API DOM.

Finalmente, creas el documento transformado y lo devuelves a través de outputstream:

Document resultDoc = builder.newDocument();

...

...

TransformerFactory tFactory = TransformerFactory.newInstance();

Transformer transformer = tFactory.newTransformer();

transformer.setOutputProperty(OutputKeys.INDENT, "yes");

DOMSource source = new DOMSource(resultDoc);

StreamResult result = new StreamResult(outputStream);

transformer.transform(source, result);

Si quieres convertir la entrada en salida puedes usar:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

factory.setNamespaceAware(true);

DocumentBuilder builder = factory.newDocumentBuilder();

Document doc = builder.parse(inputStream);

TransformerFactory tFactory = TransformerFactory.newInstance();

Transformer transformer = tFactory.newTransformer();

transformer.setOutputProperty(OutputKeys.INDENT, "yes");

DOMSource source = new DOMSource(doc);

StreamResult result = new StreamResult(outputStream);

transformer.transform(source, result);

En este punto, creo que tendrás la entrada convertida en la salida.

Saludos,

Gari.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?