Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/353: Рейтинг темы: голосов - 353, средняя оценка - 4.78
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875

Что делает метод flush()?

25.06.2019, 16:07. Показов 74577. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У Шилдта один из конструкторов класса PrintWriter описан следующим образом:
"PrintWriter(OutputStream outputStream, boolean flushOnNewline)
где в качестве первого параметра, outputStream, конструктору передается объект типа OutputStream, а второй параметр, flushOnNewline, указывает, должен ли буфер выходного потока сбрасываться каждый раз, когда вызывается (среди прочих других) метод println(). Если параметр flushOnNewline принимает значение true, сбрасывание буфера выполняется автоматически"


В коде:
Java
1
2
3
4
5
6
7
PrintWriter pw = new PrintWriter(System.out, true);
int i = 10;
double d = 123.65;
pw.println("Использование класса PrintWriter");
pw.println(i);
pw.println(d);
pw.println(i + " + " + d + " = " + (i + d));
в качестве параметра flushOnNewline передается true, но если задать false, то в консоль вообще ничего не выводится.
Однако, если в этом случае в конце кода прописать: pw.flush(), то информация снова попадает в консоль.
Подскажите, пожалуйста, правильно ли я поняла, что метод println() класса PrintWriter только лишь помещает данные в буфер выходного потока, а в консоль они выводятся когда производится сброс буфера с помощью метода flush()?
Просто для меня это немножко странно. В моем понимании сброс, это скорее уничтожение, или стирание данных, а не манипуляции с ними.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.06.2019, 16:07
Ответы с готовыми решениями:

что этот метод делает , что значит ?
protected void getImageDimensions() { width = image.getWidth(null); height = image.getHeight(null); }

Класс AccessibleObject метод setAccessible(AccessibleObject[] array, boolean flag) что он делает?
Пример из учебника Хорстмана Том 2 Пытался разобраться по документации пробовал,методом тыка ничего толком не вышло. Мой класс Variable...

Что делает метод rank(".") ?
String s = args; int dot = s.rank("."); String base = s.substring(0, dot); String extension = s.substring(dot + 1, s.length()); ...

19
291 / 193 / 104
Регистрация: 14.11.2017
Сообщений: 489
25.06.2019, 16:17
Лучший ответ Сообщение было отмечено alicesmagic3d как решение

Решение

alicesmagic3d, метод flush() выбрасывает всё из буфера в соответствующий поток. Если поток PrintWriter создан на базе стандартного потока вывода System.out, то записанные в него данные появятся на консоли только после выполнения сброса буфера (автоматического или сделанного методом flush(). Поправьте кто, если я не прав, но метод println() класса PrintWriter помещает значение в буфер самого PrintWriter, а уже при flush() толкает в System.out
1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
25.06.2019, 16:19
Лучший ответ Сообщение было отмечено alicesmagic3d как решение

Решение

alicesmagic3d, а ведь я писал про то как в Идее почитать доки по методам.
Вас смутило слово сброс? ну переведите это как заливка. То есть копим данные в буффере, а потом раз и залили в подключенный ресурс.

Flushes the stream. If the stream has saved any characters from the
* various write() methods in a buffer, write them immediately to their
* intended destination. Then, if that destination is another character or
* byte stream, flush it. Thus one flush() invocation will flush all the
* buffers in a chain of Writers and OutputStreams.
*
* <p> If the intended destination of this stream is an abstraction provided
* by the underlying operating system, for example a file, then flushing the
* stream guarantees only that bytes previously written to the stream are
* passed to the operating system for writing; it does not guarantee that
* they are actually written to a physical device such as a disk drive.
1
 Аватар для Lumber
345 / 141 / 51
Регистрация: 02.12.2015
Сообщений: 333
25.06.2019, 16:20
Лучший ответ Сообщение было отмечено alicesmagic3d как решение

Решение

ну а как по другому (лучше) перевести слово flush? А сброс многозначное слово и сюда подходит.
1
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
25.06.2019, 16:24
Я б не сказал, что flush — это сброс. В смысле, даже в плане перевода. Метод выводит данные из буфера и помещает их в предназначенное для них место. В данном, случае, поток вывода System.out

Добавлено через 2 минуты
Lumber, на самом деле, вообще не подходит. Я слышал это слово только в одном контексте: "...flush the toilet..."
Поэтому эт больше как слив, залив, чёт такое
1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
25.06.2019, 16:26
Цитата Сообщение от Gungala Посмотреть сообщение
Поэтому эт больше как слив, залив, чёт такое
соглашусь

Не по теме:

Цитата Сообщение от Gungala Посмотреть сообщение
Я слышал это слово только в одном контексте: "...flush the toilet..."
боюсь узнать подробности

0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
25.06.2019, 16:30
Цитата Сообщение от Gungala Посмотреть сообщение
Я б не сказал, что flush — это сброс.
1
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
25.06.2019, 16:55
xoraxax, прост под сбросом обычно подразумевается, как подметила ТС, уничтожение того, что сбрасывается, а тут происходит как бы именно перемещение. Я об этом, собсна

Не по теме:

Цитата Сообщение от Welemir1 Посмотреть сообщение
боюсь узнать подробности
та в мемесах я эт видел :D


0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
25.06.2019, 17:04
Цитата Сообщение от Gungala Посмотреть сообщение
подразумевается
как видим - нет
0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
25.06.2019, 17:42  [ТС]
Цитата Сообщение от alicesmagic3d Посмотреть сообщение
Подскажите, пожалуйста, правильно ли я поняла, что метод println() класса PrintWriter только лишь помещает данные в буфер выходного потока, а в консоль они выводятся когда производится сброс буфера с помощью метода flush()?
Ну, значит, в целом я правильно поняла. А то, что "сброс" даже в русском языке имеет разные значения, это я не учла.
Большое спасибо за ответы

Видео с плотинами потрясное!!!

Цитата Сообщение от Welemir1 Посмотреть сообщение
а ведь я писал про то как в Идее почитать доки по методам
Да я тоже писала, что пользуюсь эклипсом Я уже к нему привыкла. Не хочется мне идею ставить только ради чтения доков.
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
25.06.2019, 17:50
alicesmagic3d, в эклипсе тоже можно доки открыть. Выдели название класса > ПКМ > Open declaration (Не знаю как на русском, "Открыть декларацию", наверн)
1
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
25.06.2019, 17:54  [ТС]
Цитата Сообщение от Gungala Посмотреть сообщение
alicesmagic3d, в эклипсе тоже можно доки открыть. Выдели название класса > ПКМ > Open declaration (Не знаю как на русском, "Открыть декларацию", наверн)
Точняк!!! Вот только там все на английском, а здесь (на форуме) на русском. А русский мне ближе как-то
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
25.06.2019, 18:06
alicesmagic3d, всё равно полезно самостоятельно смотреть как тот или иной класс работает. Всегда узнаешь что-то новое
0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
25.06.2019, 20:52  [ТС]
Цитата Сообщение от Gungala Посмотреть сообщение
alicesmagic3d, всё равно полезно самостоятельно смотреть как тот или иной класс работает. Всегда узнаешь что-то новое
Ну так то да, согласна. Но вот, например, открываю я декларацию метода flush():
Java
1
2
3
4
5
6
7
8
9
10
11
    public void flush() {
        try {
            synchronized (lock) {
                ensureOpen();
                out.flush();
            }
        }
        catch (IOException x) {
            trouble = true;
        }
    }
И вижу здесь почти только неизвестные мне пока словечки. И понимаю, что рано мне пока смотреть эти декларации. Надо сначала учебник освоить
...
Вопрос уж заодно. В пятой строке кода, это рекурсия, или что-то такое, чего я еще не понимаю?
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
25.06.2019, 20:58
alicesmagic3d, нет, не рекурсия. Вызывается метод другого объекта
0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
25.06.2019, 21:01  [ТС]
Gungala, но разве метод, который вызывает сам себя не является рекурсивным?
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
25.06.2019, 21:03
alicesmagic3d, там вызывается не тот же самый метод, а такой же метод, но из другого объекта
0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
25.06.2019, 21:06  [ТС]
Понятно... вот и разберись тут с моими десятью главами Шилдта
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
25.06.2019, 21:11
alicesmagic3d, прост надо не только книгу читать, но и периодически искать информацию в интернете. Могу дать совет, весьма хороший, которому вы совсем не обязаны следовать, считайте, что я просто так сказал: порешайте задачи на codingbat.com

Добавлено через 39 секунд
Это бесплатно!
1
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
25.06.2019, 21:22  [ТС]
Gungala, спасибо! Задачки я люблю)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.06.2019, 21:22
Помогаю со студенческими работами здесь

Передать в метод "что-то", что бы метод мог в это "что-то" записать матрицу неизвестной размерности
Опишу суть проблемы подробнее. Есть метод, который умножает две матрицы, мне бы хотелось, что бы метод принимал в параметрах: 1....

Метод не делает изменений
Помогите, вот часть кода, реализация списков. в Таск выполняется задача, внутри него переменные меняются, а в мейне они остаются прежними....

Что делает манипулятор flush?
Доброго времени суток! Не могу толком разобраться, что делает манипулятор flush.Нужен простой пример в коде, как работает flush,...

Что делает метод?
Доброго времени суток. Подскажите пожалуйста, как будет выглядеть данный фрагмент кода на C#. std::string...

Что делает метод ToString()?
Что делает метод ToString()?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru