134 votes

Java: PrintStream to String?

J'ai une fonction qui prend un objet d'un certain type et un PrintStream sur lequel imprimer, et génère une représentation de cet objet. Comment puis-je capturer la sortie de cette fonction dans une chaîne? Plus précisément, je veux l’utiliser comme dans une méthode toString .

216voto

ChssPly76 Points 53452

Utilisez ByteArrayOutputStream en tant que tampon:

 ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);
your_function(object, ps);
String content = baos.toString(charsetName); // e.g. ISO-8859-1
 

36voto

Asaph Points 56989

Vous pouvez construire un PrintStream avec un ByteArrayOutputStream transmis au constructeur que vous pourrez utiliser ultérieurement pour récupérer le texte écrit dans le PrintStream.

 ByteArrayOutputStream os = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(os);
...
String output = os.toString("UTF8");
 

2voto

Kamil Szot Points 4521

Peut-être que cette question pourrait vous aider: http://stackoverflow.com/questions/216894/get-an-outputstream-into-a-string

Sous-classe OutputStream et envelopper dans PrintStream

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X