Тёмный
No video :(

Потоки ввода-вывода - IO и NIO ( 

Изучаем Java
Подписаться 12 тыс.
Просмотров 32 тыс.
50% 1

Система ввода-вывода в Java. Ссылки на примеры можно посмотреть на странице java-course.ru/...

Опубликовано:

 

29 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 86   
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 2 года назад
0:00:00 Общий обзор: файлы, сеть, память, порты COM, USB. 0:03:55 Два типа ввода вывода: двоичный, символьный 0:08:28 двоичный: FileInputStream, FileOutputStream; read(), write() - работа с одиночными байтами - медленный вариант 0:15:53 двоичный: buffer = new byte[n]; read(buffer); write(buffer) - работа через буфер - быстрее вариант 0:19:48 try with resourses 0:23:05 символьный: FileReader, FileWriter - работа с одиночными символами - медленный вариант 0:26:54 символьный: buffer = new char[n]; read(buffer); write(buffer) - работа через буфер - быстрее вариант 0:30:14 Потоки IO можно передавать последовательно друг другу 0:33:50 InputStreamReader - преобразование потока байтов в поток символов 0:37:15 BufferedReader - эффективное буферизированное чтение 0:44:26 Работа в памяти - подводка к этому 0:48:36 Работа в памяти: ByteArrayInputStream, ByteArrayOutputStream 0:52:58 Работа с файловой системой - подводка к этому 0:55:19 Работа с файловой системой. Класс File 1:02:24 FileFilter 1:09:07 NIO 1:10:57 Канал Channel, Буфер Buffer 1:46:30 Класс Paths
@java8599
@java8599 2 года назад
Спасибо
@mrnght2740
@mrnght2740 2 месяца назад
Передаю привет всем будущим поколениям джавараша)
@sgkng9697
@sgkng9697 2 года назад
Большое спасибо. Пришёл с Джавараш от комментария Миши Зефира. Посмотерл кусок - реально всё стало понятнее, начал решать задачи
@kransbect7126
@kransbect7126 4 месяца назад
Я тоже с Javarush)
@user-wy1sp3ep3z
@user-wy1sp3ep3z 3 года назад
Вот что называется опытный программист:) Столько нюансов!!! Спасибо Вам!!!
@user-uh7zd5ll1o
@user-uh7zd5ll1o Год назад
Не первый раз смотрю видео Антона, вот реально получаю эстетическое удовольствие от грамотной речи человека, знания , конечно, тоже на высоте, но эта интеллигентность речи, это нечто!!!
@45053
@45053 4 месяца назад
На сколько я знаю - не обязательно вызывать close() для всех потоков, достаточно для последнего (или даже для любого, поправьте кто знает). Автору спасибо, все разложилось по полочкам.
@tsudzukeru2891
@tsudzukeru2891 4 года назад
Без спешки, спокойно и доходчиво. Спасибо. Буду всем советовать!
@user-qq3ig3pi8e
@user-qq3ig3pi8e 3 года назад
Проходил курс на javaRush и вот эту тему не понял полностью после 6 лекций. Пришлось самостоятельно искать в интернете и это видео сильно помогло в понимании. Спасибо, автор!)
@Zhake1993
@Zhake1993 3 года назад
кстати тоже на джавараше особо не понял, у меня такая каша началась после этого, надеюсь это видео поможет
@nubex2857
@nubex2857 2 года назад
стал программистом?
@nubex2857
@nubex2857 2 года назад
@@Zhake1993 Стал программистом?
@LoveSneakerPimps
@LoveSneakerPimps 2 года назад
@@nubex2857 да мне кажется рановато ещё на разраба , спустя лишь примерно 8 мес? если ток джуном где нибудь
@nubex2857
@nubex2857 2 года назад
@@LoveSneakerPimps это не лишь, а уже. Лучше идти джуном, чем дальше учиться
@Devivl
@Devivl 11 месяцев назад
Благодарю за краткость и доступность.
@nde375
@nde375 2 года назад
Спасибо! Очень нравится, как вы объясняете.
@robbybobbi963
@robbybobbi963 3 года назад
наконец то нашел хорошее видео по этой теме, спасибо большое
@shukuchi8460
@shukuchi8460 3 года назад
Спасибо! Очень информативная и понятная лекция.
@yevheniyserhiyenko5761
@yevheniyserhiyenko5761 3 года назад
Супер лекции Круто объясняешь
@user-varmat
@user-varmat 5 лет назад
Большое спасибо за проделанную работу. Вроде знаком, а все же, некоторые моменты новые увидел, да и память освежил.
@user-st4kk2qz7s
@user-st4kk2qz7s 7 лет назад
Дядь , спасибо ) все четко по делу. + в карму тебе
@nadiiar75
@nadiiar75 2 года назад
спасибо вам большое за лекцию. все очень понятно изложено.
@wuwarrior94
@wuwarrior94 2 года назад
Спасибо за данный вебинар!
@user-eq8ny4in9c
@user-eq8ny4in9c 4 года назад
Большое спасибо!
@iryna6389
@iryna6389 5 лет назад
Огромное спасибо!!!! Все понятно. Видео очень помогло!
@user-km3mp8wh7f
@user-km3mp8wh7f 3 года назад
Шикарно! Спасибо!!!
@user-hh3fm4yb5e
@user-hh3fm4yb5e 7 лет назад
Спасибо, очень помог!
@jopinfuyiro5570
@jopinfuyiro5570 3 года назад
в 2017 году люди не умели записывать видео с компьютера?) а еще мак и быстрый диск) видео информативное+
@fredor2844
@fredor2844 4 года назад
13:56. Т.е. получается, что самый первый байт мы не запишем в новый файл)))
@java8599
@java8599 4 года назад
Судя по всему - я действительно допустил ошибку. Спасибо за замечание. Исправить уже не получится. К сожалению. Но для варианта чтения блоками по идее все правильно.
@fredor2844
@fredor2844 4 года назад
@@java8599 спасибо Вам за ваш труд! У вас отличные материалы и, безусловно, талант к преподаванию.
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 2 года назад
В книге "Head First Паттерны проектирования. 2022г" есть неплохой пример работы с IO в главе про декоратор
@Daniel-mo1iy
@Daniel-mo1iy 2 года назад
доброго времени суток. вы бы посоветовали данную книгу новичкам? (в java).
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 2 года назад
@@Daniel-mo1iy Многие моменты очень хорошо поданы, начальные главы например. Но некоторые не очень, например где они вводят в пример какие то библиотеки, или перегружают пример информацией. Я бы рекомендовал эту книгу, но нужно и другие источники использовать. Например некоторые примеры для меня лучше в Википедии поданы.
@user-fr2dw3qd4v
@user-fr2dw3qd4v 4 года назад
Антон, я уже писал про звук. Вот хотел показать, где особо заметна проблема звука. Слышите как на 2:47 прорывается слово "как"? Или с 6:28 звук из громкого превратился в тихий за 6 секунд. И так на протяжении всего видео. Громкость сигнала постоянно меняется(плохо реализованный программный компрессор пытается регулировать громкость поступающего звукового сигнала).
@java8599
@java8599 4 года назад
Я в данном случае не мог вообще управлять уровнем - это запись на базе системы вебинаров. Они такого рода звуковые настройки не давали регулировать. А вручную искать и выправлять - слишком много времени. Не вижу смысла.
@user-fr2dw3qd4v
@user-fr2dw3qd4v 4 года назад
@@java8599 ну это на вашей стороне происходит. Гарнитура какая-то чувствительная что ли. Куда ее втыкаете, кстати? У вас в ПК есть гнездо как в мобильниках для гарнитур? Или у вас специальные наушники с микрофоном у которых 2 штекера надо подтыкать?
@java8599
@java8599 4 года назад
@@user-fr2dw3qd4v Нет, это не происходило на моей стороне - звук считывался программой для вебинаров сразу с микрофона и напрямую пересылался на сервер провайдера. Никаких настроек на моем компьютере эта программа не предоставляла. Так что увы. Именно этот цикл вебинаров не мог быть сразу обработан по звуку. А потом делать обработку слишком затратно по времени. Я же не на звукорежиссера учился :)
@user-fr2dw3qd4v
@user-fr2dw3qd4v 4 года назад
@@java8599 подробностей не узнал. Но представляя ситуацию дальше, могу предположить, что вы или громко говорите, что в аппаратной части уже звук давится или сам микрофон близко ко рту расположен. Может быть в самой гарнитуре что-то зашито или она просто не качественная. Или ОСь как-то косячно принимает звук. Ну, в общем я уверен на 99%, что на это можно повлиять действиями именно с вашей стороны.
@user-fr2dw3qd4v
@user-fr2dw3qd4v 4 года назад
@@java8599 не хотелось бы, чтобы показалось, будто я предъявы кидаю) Просто озвучиваю, то что невольно вижу(слышу). Может захотите прокачать эту сторону канала.
@roppeld
@roppeld 4 года назад
У меня вопрос. Когда массив buffer заполняется под завязку байтами (или символами), то как он очищается? автоматически, я так понимаю? как только записалось методом write(), то происходит обнуляция, поэтому в цикле стоит второй аргумент метода write(), 0, типо, это неважно, если массив изначально заполнился полность? А если в какой-то момент не заполнится полностью, то как это выяснить, отследить и стоит ли писать код в цикле, упреждающий эту ситуацию, дописывая в аргументе точную цифру (хотя я не знаю, как на нее выйти). несколько этот момент хотелось бы прояснить.
@java8599
@java8599 4 года назад
Массив не очищается, но заполняется новыми данными.. Когда считываются байты через read возвращается количество реально считаных байтов. Значит в массиве надо взять байты начиная с элемента 0 и до элемента, который равен числу считанных байтов. Вот собственно и все.
@roppeld
@roppeld 4 года назад
@@java8599 здорово, благодарю! Это все, что мне хотелось прояснить (>▽
@mkrugl
@mkrugl 3 года назад
Здравствуйте. А будет ли видео про разницу SQL и NonSQL? В чём суть NonSQL?
@java8599
@java8599 3 года назад
Для начала можно посмотреть вот это видео: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-7Cx40sUIyMQ.html
@mkrugl
@mkrugl 3 года назад
Изучаем Java я смотрел. Благодарю. Я вам тот же самый вопрос задал в комментариях под ним).
@java8599
@java8599 3 года назад
Я так понял, вопрос - в чем суть NoSQL ?
@mkrugl
@mkrugl 3 года назад
Изучаем Java да, именно. Хотелось бы знать.
@nikitinnnnn
@nikitinnnnn 7 лет назад
Спасибо Антон. Скажите пожалуйста, может ли метод SocketChannel.write(ByteBuffer) писать серверу по внешней сети без задержек или с задержками меньше 100мс? У меня почему то в моем простом тесте при передаче буфера размером 1024 byte за минуту клиент выдает 10-20 задержек по 125-200мс, это я что то не так написал или этот метод так и работает?
@eduardmart1237
@eduardmart1237 5 лет назад
А в чем NIO не блокирующий то? ведь все строчки кода же последовательно будут исполняться. Это же не JS где есть async await
@java8599
@java8599 5 лет назад
А многопоточный вариант рассматривался ?
@eduardmart1237
@eduardmart1237 5 лет назад
Не я в том плане что его неблокируемость заключается в повышении производительности? Но все операции все равно идут одна за одной?
@andreyzaytsev589
@andreyzaytsev589 3 года назад
Вот интересно, у меня когда буфер опустошается то его размер = 0, т.е. проверка работает только когда while (r!=0){
@user-wy1sp3ep3z
@user-wy1sp3ep3z 3 года назад
Единственное, что никак не пойму, почему мы ссылки на объекты (FileInputStream, FileOutputStream и тп. с классами, работающими с символами) кладем в абстрактный класс?
@java8599
@java8599 3 года назад
Почитайте про полиморфизм. Я могу использовтаь ссылку абстрактоного класса для указания на объект подкласса. Простыми словами - я могу собакой называть и добермана, и овчарку, и пуделя. Если мне важно, что это собака, а не конкретная порода.
@artemokunkov6591
@artemokunkov6591 4 года назад
лютый + в карму
@user-bd1df4vw2s
@user-bd1df4vw2s Год назад
звук ОК(( Но очень хороший материал.
@user-fr2dw3qd4v
@user-fr2dw3qd4v 4 года назад
Я не понимаю, почему в цикле while сначала записываете, а потом читаете? 17:34 и 26:17. Мы же последний байт теряем, если я все правильно понимаю.
@java8599
@java8599 4 года назад
Неправильно понимаете. Первый байт считывает ДО цикла. И если он считался. то мы заходим в цикл обработки и в конце него снова считываем байт. И если он считался, то цикл повторяется для вновь считанного байта. И снова в конце считываем и пытаемся продолжить цикл только если байт считался. И т.д.. Учитесь читать код - это крайне важный навык.
@user-fr2dw3qd4v
@user-fr2dw3qd4v 4 года назад
​@@java8599 да, затупил. Просто проверку по-другому всегда реализовывал. С помощью готовых методов, типа ready().
@boundlesspower5564
@boundlesspower5564 7 лет назад
четко
@AndreiPadikk
@AndreiPadikk 3 года назад
спасибо. хороший webinar. подскажите пожалуйста как в NetBeans включить всплывающие Tooltips, которые показывают все конструкры при наведении на код. долго гуглил, но кроме разного набора Hints (что не совсем то) ничего не нашлось.
@java8599
@java8599 3 года назад
Что значит "показывают все конструкторы при наведении на код" ? Это о чем ?
@AndreiPadikk
@AndreiPadikk 3 года назад
@@java8599 например на 34:50 секунде видео. когда вы создаёте новый объект new InputStreamReader(). в всплывающем окне показаны 4 возможных конструктора этого класса. как я не наводил мышку, и не настраивал Hints в меню Tools\Options\Editor у NetBeans, - у меня такая подсказка не всплывает. уже подумал, возможно это зависит от реализации JVM; я на Windows, а не на Mac-e.
@java8599
@java8599 3 года назад
@@AndreiPadikk Так это не список конструкторов, а список возможных входных параметров. По-моему Ctrl-P. Не помню точно - давно не пользуюсь NetBeans.
@AndreiPadikk
@AndreiPadikk 3 года назад
@@java8599 да, точно, Ctrl-P. спасибо. (Int.Idea как-то более friendly))
@user-br4gt7xu2j
@user-br4gt7xu2j 3 года назад
@@AndreiPadikk а ничего что в IDEA точно также Ctrl+P?))))
@chukkykatz1007
@chukkykatz1007 7 лет назад
Отличное видео. Но блин, чувак, что у тебя с микрофоном? Чего он так орет периодически?
@dimagarbar816
@dimagarbar816 7 лет назад
Я представил это (NIO) как резервуары с водой, может поможет кому. Вопрос, чтобы работать со строками, нужно разобраться с CharBufer или есть более простое решение. Мне просто нужно в txt файле искать строку, потом производить с ней изменения и уже потом пересоздать файл.
@dimagarbar816
@dimagarbar816 7 лет назад
Досмотрел видео, сделаю через .nio.File.Files.
@andrew-ua
@andrew-ua 4 года назад
вы издеваетесь, а где Scanner ???? Шо за нафиг???
@java8599
@java8599 4 года назад
Как сказал Козьма Прутков - нельзя объять необъятное. Если считаете, что Scanner очень важная вещь - сделайте свой вебинар или свое видео.
@user-es6xl7tf4c
@user-es6xl7tf4c 6 лет назад
Как же ты бесишь своими прилагательными (красивенький, миленький)...
@ModestItogo
@ModestItogo 5 лет назад
точно лишней слащавой пурги много
@rufat85
@rufat85 4 года назад
а по мне норм
@gagogoga794
@gagogoga794 4 года назад
Скажи спасибо за инфу.
@user-mw5wp2hs6e
@user-mw5wp2hs6e 4 года назад
Не выебывайся, тебе тут лекцию отличную предоставили бесплатно
@user-gy4xd7tx8j
@user-gy4xd7tx8j 2 года назад
Это синтаксический сахар. Спасибо за отличную лекцию!
@EdwardNorthwind
@EdwardNorthwind Год назад
А зачем в примере с NIO и Channel второй буфер? Что мешает написать: int r = inChannel.read(bb); while (r != -1) { bb.flip(); outChannel.write(bb); bb.clean(); r = inChannel.read(bb); }
@felixvoid5521
@felixvoid5521 7 месяцев назад
Теперь я знаю как пылесос затягивает и с каким звуком, если у него есть труба ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-r9paa9AJ7Gk.htmlsi=4IoR7gS6quAtQvdY&t=2480 А так лекция ужасно душная. Объясняет плохо. Не знаю чего все с JR рекомендуют его.
Далее
Что такое Reflection (http://java-course.ru)
2:08:59
🛑самое грустное видео
00:10
Просмотров 167 тыс.
Коллекции в Java (http://www.java-course.ru)
2:04:43
Что такое Maven (http://java-course.ru)
1:58:57
Java Core: Java I/O. Лекция #11 (Часть 1)
44:27