In un servlet, sto creando una quantità molto grande di contenuto HTML in uno StringBuilder che, alla fine, deve essere scritto nel PrintWriter della risposta. Per utilizzare un PrintWriter, è necessario prima chiamare il metodo toString() di StringBuilder per ottenere il contenuto come String. Ma questo duplica inutilmente il contenuto. C'è un modo per scrivere direttamente da StringBuilder dato che è già in possesso del contenuto?Scrivere uno StringBuilder su un writer, senza toString()
PrintWriter può accettare un CharSequence, ma la documentazione afferma che chiama toString() di CharSequence, quindi non è di grande aiuto.
L'unico modo chiaro che posso vedere è usare il metodo charAt (i) di StringBuilder per ottenere e scrivere un carattere alla volta, ma questo sarebbe un miglioramento?
Il miglioramento è relativo. Se il tuo obiettivo è ridurre il consumo di memoria, allora sì, sarebbe un miglioramento. Dovresti testare se è più lento. Non sarei sorpreso se, a causa del buffering del flusso di output, la penalizzazione delle prestazioni non fosse poi così grande. –