У StringWriter есть функция flush. Что значит сбросить строковый буфер?
Какой смысл это сделать для стирания StringWriter в Java?
Ответ 1
Он должен иметь реализацию flush()
, потому что в своем суперклассе Writer
абстрактный метод и StringWriter
не является абстрактным классом. Однако, если вы посмотрите на исходный код StringWriter.flush()
, который вы можете найти в файле src.zip
в каталоге установки JDK, вы увидите:
/**
* Flush the stream.
*/
public void flush() {
}
Другими словами, он ничего не делает. (Конечно, существуют другие подклассы Writer
, где flush()
делает что-то полезное).
Человек, который реализовал этот метод, мог документировать, что он ничего не делает, но они этого не сделали.
Ответ 2
В общем, флеш заставляет буфер записывать свой контент в пункт назначения, например, записывая байты в файл на жестком диске.