Je sais comment rediriger la sortie standard vers un fichier, mais je n'ai aucune idée sur la façon de le rediriger vers une chaîne.Rediriger stdout vers une chaîne en Java
25
A
Répondre
49
Oui - vous pouvez utiliser un ByteArrayOutputStream
:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
System.setOut(new PrintStream(baos));
Ensuite, vous pouvez obtenir la chaîne avec baos.toString()
.
Pour spécifier l'encodage (et ne pas compter sur celui défini par la plate-forme), utilisez le constructeur PrintStream(stream, autoFlush, encoding)
et baos.toString(encoding)
Si vous voulez revenir au flux d'origine, utilisez:
System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));