Tengo una función que toma un objeto de un tipo determinado, y un PrintStream
al cual imprimir, y muestra una representación de ese objeto. ¿Cómo puedo capturar la salida de esta función en una cadena? Específicamente, quiero usarlo como en un método toString
.Java: PrintStream a String?
90
A
Respuesta
156
Utilice un ByteArrayOutputStream
como un amortiguador:
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.nio.charset.StandardCharsets;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos, true, "utf-8");
yourFunction(object, ps);
String content = new String(baos.toByteArray(), StandardCharsets.UTF_8);
ps.close();
22
Usted puede construir una PrintStream con un ByteArrayOutputStream pasado al constructor que se puede utilizar más adelante para agarrar el texto escrito a la PrintStream.
ByteArrayOutputStream os = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(os);
...
String output = os.toString("UTF8");
1
Tal vez esta pregunta podría ayudarle a: Get an OutputStream into a String
OutputStream Subclase y se envuelve en PrintStream
-1
Definir e inicializar una variable de escáner llamado INSS que crea un flujo de cadena de entrada utilizando la variable de cadena myStrLine .
Resp .: Escáner inSS = new Scanner (myStrLine);
2
Una unificación de respuestas anteriores, esta respuesta funciona con Java 1.7 y posteriores. Además, agregué código para cerrar las transmisiones.
final Charset charset = StandardCharsets.UTF_8;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos, true, charset.name());
yourFunction(object, ps);
String content = new String(baos.toByteArray(), charset);
ps.close();
baos.close();
Cuestiones relacionadas
- 1. Convierte PrintStream a PrintWriter
- 2. Java: diferencia entre PrintStream y PrintWriter
- 3. PrintStream y PrintStream nunca se tiran IOExceptions
- 4. Java - Captura System.err.println o capturar una pregunta PrintStream
- 5. Cómo usar flush() para PrintStream
- 6. Convertir array MD5 a String java
- 7. Con respecto a Java String Constant Pool
- 8. Cómo convertir String a long en Java?
- 9. Java: ¿Es confiable assertEquals (String, String)?
- 10. MATLAB: Java String [] conversión
- 11. String POOL en java
- 12. String ... parámetro en Java
- 13. Java String Memory Leak
- 14. Groovy/String de Java
- 15. Java String Valor Unicode
- 16. Java String declaration
- 17. JAVA: NamedQuery String problema
- 18. superíndice en Java String
- 19. Java: ¿cómo inicializar String []?
- 20. String datatype in java
- 21. Diferencia entre String [] a y String ... a
- 22. String de Java desde InputStream
- 23. Query String Manipulation en Java
- 24. Java BASE64 utf8 string decoding
- 25. Convertir Java String en sql.Timestamp
- 26. ¿Qué es "String ..." en java?
- 27. ¿Debo cerrar FileOutputStream, que está incluido en PrintStream?
- 28. Decode base64 String Java 5
- 29. Java String replace no funciona
- 30. Cómo convertir JTextField a String y String en JTextField?
Wanna lower¿Por casualidad, tienes ese nombre de variable 'S'? Estás lastimando mis ojos. – Asaph
@Asaph: siéntete libre de evitarlos :-) – ChssPly76
No olvides cerrar el PrintStream para liberar todos los recursos. – tobr