Как работает метод flush() в Java?
Подскажите пожалуйста такой момент. Не совсем понимаю как именно работает метод flush()
при использовании потоков вывода. Из прочитанного я понял, что он нужен для независимого сброса буфера и записи данных. Есть специальные буферизированные потоки BufferedOutputStream
и BufferedWriter
для байтов и символов, где имеется внутренний буфер, чтобы не обращаться каждый раз к внешнему источнику (файлу, сетевому сокету и т.д.). Какой смысл тогда этого метода в обычных "не-буферизированных" классах, которые мгновенно записывают данные?
import java.io.*;
public class Program {
public static void main(String[] args) {
try(FileWriter writer = new FileWriter("note.txt")
{
String text = "Some text";
writer.write(text);
writer.flush();
}
catch(IOException ex){
System.out.println(ex.getMessage());
}
}
}