FileOutputStream vs FileWriter

Коллеги, прошу помочь. Есть 2 схожих кода, копирующих файл:

FileReader fileReader = new FileReader(fileInputName);
FileWriter fileWriter = new FileWriter(fileOutputName);
int nextSmbl = fileReader.read();
while (nextSmbl > 0) {
    fileWriter.write(nextSmbl);
    nextSmbl = fileReader.read();

и

FileInputStream fileInputStream = new FileInputStream(fileInputName);
FileOutputStream fileOutputStream = new FileOutputStream(fileOutputName);
int nextSmbl = fileInputStream.read();
while (nextSmbl > 0) {
    fileOutputStream.write(nextSmbl);
    nextSmbl = fileInputStream.read();

В первом случае если fileWriter не flush() или close() - файл создается, но в него ничего не копируется. Во втором случае - все копируется без flush() или close(). Почему так происходит?


Ответы (1 шт):

Автор решения: IR42

FileWriter - буферизованный, а FileOutputStream - нет

→ Ссылка