BufferedWriter более эффективен, когда у вас есть несколько записей. Это экономит небольшие записи и записи в один большой кусок. Ниже приведен метод write () объекта BufferedWriter, который проверяет, заполнен ли буфер if (nextChar >= nChars)
, и очищает его.
public void write(int c) throws IOException {
synchronized (lock) {
ensureOpen();
if (nextChar >= nChars)
flushBuffer();
cb[nextChar++] = (char) c;
}
}
что касается FileWriter, каждая запись выполняет один системный вызов, в отличие от BufferedWriter, который создает систему после заполнения буфера. Так что если у вас есть несколько небольших записей, BufferedWriter будет более эффективным.