Я хотел бы использовать PrintWriter или PrintStream для записи форматированных строк в выходной поток (для которого я не контролирую создание). Однако очистка базового OutputStream сильно снижает производительность.
Нужно ли сбрасывать PrintWriter / PrintStream.
Если мне нужно очистить PrintStream / PrintWriter; могу ли я сделать это, не очищая базовый поток OutputStream, или мне нужно будет создать OutputStream «защиты сбрасывания», чтобы обернуть базовый поток?
Чтобы попытаться немного прояснить это, я хочу реализовать
public void writeSomeString(OutputStream foo);
Но этот метод может вызываться много раз для одного и того же OutputStream (foo). Каждый вызов должен будет создать свой собственный PrintWriter. Я знаю, что это некрасиво, но я не могу контролировать интерфейс или создание foo
.
Я пытаюсь избежать того, чтобы каждому методу приходилось сбрасывать foo
только для того, чтобы сбросить свой собственный PrintWriter/PrintStream.
Итак, я хочу:
public void writeSomeString(OutputStream foo) {
PrintStream s = new PrintStream(foo);
s.println("bar");
// other code
}
Я хочу полностью избежать сброса этого метода foo