Pasar de un outputStream a un String
Hola, necesito obtener un String a partir de un OutputSream.
La cuestión es que tengo un objeto, que lo parseo a XML mediante org.apache.commons.betwixt.io.BeanWriter, y ahora lo necesito pasar por SOAP ese XML.
Gracias
La cuestión es que tengo un objeto, que lo parseo a XML mediante org.apache.commons.betwixt.io.BeanWriter, y ahora lo necesito pasar por SOAP ese XML.
Gracias
un OutputStream es un flujo de bytes de salida, al que le pasas bytes, no del que recibes datos, para obtener un String.
Manera interesante de pasar objetos por la red.
Voy con el asunto de tu pregunta.
Si se puede usa lo siguiente
public final class IOUtil {
public static InputStream convertStream(ByteArrayOutputStream source)
throws IOException {
return new ByteArrayInputStream(source.toByteArray());
}
public static void convertStream(InputStream source, StringBuffer target)
throws IOException {
int c;
while (( c = source.read()) != -1) {
target.append((char) c);
}
}
}
Ahora en mi codigo asi uso la clase
baos es el OutPutStream
InputStream is = IOUtil.convertStream(baos);
IOUtil.convertStream(is, resultStream);
String resultString = resultStream.toString();
Saludos y espero que te sirva!!!!!
Voy con el asunto de tu pregunta.
Si se puede usa lo siguiente
public final class IOUtil {
public static InputStream convertStream(ByteArrayOutputStream source)
throws IOException {
return new ByteArrayInputStream(source.toByteArray());
}
public static void convertStream(InputStream source, StringBuffer target)
throws IOException {
int c;
while (( c = source.read()) != -1) {
target.append((char) c);
}
}
}
Ahora en mi codigo asi uso la clase
baos es el OutPutStream
InputStream is = IOUtil.convertStream(baos);
IOUtil.convertStream(is, resultStream);
String resultString = resultStream.toString();
Saludos y espero que te sirva!!!!!
