2013-08-30 2 views
1

Я думаю, что на это был дан ответ, но я не могу его найти.Выходной поток над StringBuilder

У меня есть метод экземпляра, который записывает некоторые содержимое в выходной поток

writeTo(OutputStream){ 
    //class specific logic 
} 

Я хочу его, чтобы получить это содержимое в StringBuilder. Я могу сделать это через временный файл, но это кажется неправильным. Я хочу, чтобы сделать что-то вроде:

Stringbuilder sb = /* */; 
OutputStream os = outForStringBuilder(sb);//not sure how to do this 
instance.writeTo(os); //This should write the contents to Stringbuilder 
+0

Вы хотите записать строку в 'StringBuilder' к «OutputStream»? –

+0

@SotiriosDelimanolis Другой способ. Обновлен вопрос, чтобы сделать его понятным – rocketboy

ответ

2

Итак, вы хотите, чтобы выходные данные записывались в поток, чтобы вместо этого перейти к StringBuffer. Я предполагаю, что вы это делаете, потому что OutputStream требуется где-то в другом месте. Вы можете использовать ByteArrayOutputStream, но если вы хотите сохранить поведение StringBuffer, можно просто обернуть StringBuffer в подклассе OutputStream как код здесь:

http://geronimo.apache.org/maven/specs/geronimo-javamail_1.4_spec/1.6/apidocs/src-html/org/apache/geronimo/mail/util/StringBufferOutputStream.html#line.31

Смежные вопросы