In einem Servlet baue ich eine sehr große Menge an HTML-Inhalt in einem StringBuilder, die am Ende in den PrintWriter der Antwort geschrieben werden muss. Um einen PrintWriter zu verwenden, muss zuerst die toString() - Methode von StringBuilder aufgerufen werden, um den Inhalt als String abzurufen. Dies verdoppelt den Inhalt unnötig. Gibt es eine Möglichkeit, direkt aus dem StringBuilder zu schreiben, da er den Inhalt bereits enthält?Schreiben Sie einen StringBuilder in einen Writer ohne toString()
PrintWriter kann eine CharSequence akzeptieren, aber die Dokumentation besagt, dass es die toString() der CharSequence aufruft, also hilft es nicht wirklich.
Die einzige klare Möglichkeit, die ich sehen kann, ist die charAt (i) -Methode von StringBuilder, um ein Zeichen zu einem Zeitpunkt zu erhalten und zu schreiben, aber wäre dies eine Verbesserung?
Verbesserung ist relativ. Wenn Ihr Ziel ist, den Speicherverbrauch zu reduzieren, dann wäre es ja eine Verbesserung. Sie sollten testen, ob es langsamer ist. Ich wäre nicht überrascht, wenn die Performance-Strafe aufgrund der Pufferung des Ausgabestroms gar nicht so groß wäre. –