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
@java85992 жыл бұрын
Спасибо
@mrnght27405 ай бұрын
Передаю привет всем будущим поколениям джавараша)
@sgkng96973 жыл бұрын
Большое спасибо. Пришёл с Джавараш от комментария Миши Зефира. Посмотерл кусок - реально всё стало понятнее, начал решать задачи
@kransbect71267 ай бұрын
Я тоже с Javarush)
@user-uo2tmap2 ай бұрын
Отлично объясняете. Я студент Javarush University, и даже несмотря на дополнительные видео курса, прояснилось только после вашего объяснения. Я уже было отчаялся, честное слово. Спасибо вам!
@ЕкатеринаЛьвова-е1ф3 жыл бұрын
Вот что называется опытный программист:) Столько нюансов!!! Спасибо Вам!!!
@ОлегНесмелов Жыл бұрын
Не первый раз смотрю видео Антона, вот реально получаю эстетическое удовольствие от грамотной речи человека, знания , конечно, тоже на высоте, но эта интеллигентность речи, это нечто!!!
@450538 ай бұрын
На сколько я знаю - не обязательно вызывать close() для всех потоков, достаточно для последнего (или даже для любого, поправьте кто знает). Автору спасибо, все разложилось по полочкам.
@tsudzukeru28914 жыл бұрын
Без спешки, спокойно и доходчиво. Спасибо. Буду всем советовать!
@АрсенийОстапенко-м7в3 жыл бұрын
Проходил курс на javaRush и вот эту тему не понял полностью после 6 лекций. Пришлось самостоятельно искать в интернете и это видео сильно помогло в понимании. Спасибо, автор!)
@Zhake19933 жыл бұрын
кстати тоже на джавараше особо не понял, у меня такая каша началась после этого, надеюсь это видео поможет
@nubex28573 жыл бұрын
стал программистом?
@nubex28573 жыл бұрын
@@Zhake1993 Стал программистом?
@LoveSneakerPimps2 жыл бұрын
@@nubex2857 да мне кажется рановато ещё на разраба , спустя лишь примерно 8 мес? если ток джуном где нибудь
@nubex28572 жыл бұрын
@@LoveSneakerPimps это не лишь, а уже. Лучше идти джуном, чем дальше учиться
@Devivl Жыл бұрын
Благодарю за краткость и доступность.
@nde3752 жыл бұрын
Спасибо! Очень нравится, как вы объясняете.
@robbybobbi9634 жыл бұрын
наконец то нашел хорошее видео по этой теме, спасибо большое
@shukuchi84604 жыл бұрын
Спасибо! Очень информативная и понятная лекция.
@ВалераКонь-п3ж7 жыл бұрын
Дядь , спасибо ) все четко по делу. + в карму тебе
@nadiiar752 жыл бұрын
спасибо вам большое за лекцию. все очень понятно изложено.
@yevheniyserhiyenko57613 жыл бұрын
Супер лекции Круто объясняешь
@wuwarrior943 жыл бұрын
Спасибо за данный вебинар!
@char-245 жыл бұрын
Большое спасибо за проделанную работу. Вроде знаком, а все же, некоторые моменты новые увидел, да и память освежил.
@iryna63896 жыл бұрын
Огромное спасибо!!!! Все понятно. Видео очень помогло!
@МаксимКизилов-э3я4 жыл бұрын
Большое спасибо!
@ВладиславТрунов-т2т3 жыл бұрын
Шикарно! Спасибо!!!
@sergka3626Ай бұрын
Не понял зачем второй выходной буфер, вроде прикол же как раз в том, что можем флипать его и переключать режимы чтения/записи. То есть также как в io с массивом байт, только здесь нам не нужно помнить сколько байт мы прочитали. Еще непонятно почему это должно работать быстрее, по крайней мере чтение файлов.
@roppeld4 жыл бұрын
У меня вопрос. Когда массив buffer заполняется под завязку байтами (или символами), то как он очищается? автоматически, я так понимаю? как только записалось методом write(), то происходит обнуляция, поэтому в цикле стоит второй аргумент метода write(), 0, типо, это неважно, если массив изначально заполнился полность? А если в какой-то момент не заполнится полностью, то как это выяснить, отследить и стоит ли писать код в цикле, упреждающий эту ситуацию, дописывая в аргументе точную цифру (хотя я не знаю, как на нее выйти). несколько этот момент хотелось бы прояснить.
@java85994 жыл бұрын
Массив не очищается, но заполняется новыми данными.. Когда считываются байты через read возвращается количество реально считаных байтов. Значит в массиве надо взять байты начиная с элемента 0 и до элемента, который равен числу считанных байтов. Вот собственно и все.
@roppeld4 жыл бұрын
@@java8599 здорово, благодарю! Это все, что мне хотелось прояснить (>▽
@Das.Kleine.Krokodil2 жыл бұрын
В книге "Head First Паттерны проектирования. 2022г" есть неплохой пример работы с IO в главе про декоратор
@Daniel-mo1iy2 жыл бұрын
доброго времени суток. вы бы посоветовали данную книгу новичкам? (в java).
@Das.Kleine.Krokodil2 жыл бұрын
@@Daniel-mo1iy Многие моменты очень хорошо поданы, начальные главы например. Но некоторые не очень, например где они вводят в пример какие то библиотеки, или перегружают пример информацией. Я бы рекомендовал эту книгу, но нужно и другие источники использовать. Например некоторые примеры для меня лучше в Википедии поданы.
@fredor28444 жыл бұрын
13:56. Т.е. получается, что самый первый байт мы не запишем в новый файл)))
@java85994 жыл бұрын
Судя по всему - я действительно допустил ошибку. Спасибо за замечание. Исправить уже не получится. К сожалению. Но для варианта чтения блоками по идее все правильно.
@fredor28444 жыл бұрын
@@java8599 спасибо Вам за ваш труд! У вас отличные материалы и, безусловно, талант к преподаванию.
@jopinfuyiro55703 жыл бұрын
в 2017 году люди не умели записывать видео с компьютера?) а еще мак и быстрый диск) видео информативное+
@Дмитрий-ю9к3г4 жыл бұрын
Антон, я уже писал про звук. Вот хотел показать, где особо заметна проблема звука. Слышите как на 2:47 прорывается слово "как"? Или с 6:28 звук из громкого превратился в тихий за 6 секунд. И так на протяжении всего видео. Громкость сигнала постоянно меняется(плохо реализованный программный компрессор пытается регулировать громкость поступающего звукового сигнала).
@java85994 жыл бұрын
Я в данном случае не мог вообще управлять уровнем - это запись на базе системы вебинаров. Они такого рода звуковые настройки не давали регулировать. А вручную искать и выправлять - слишком много времени. Не вижу смысла.
@Дмитрий-ю9к3г4 жыл бұрын
@@java8599 ну это на вашей стороне происходит. Гарнитура какая-то чувствительная что ли. Куда ее втыкаете, кстати? У вас в ПК есть гнездо как в мобильниках для гарнитур? Или у вас специальные наушники с микрофоном у которых 2 штекера надо подтыкать?
@java85994 жыл бұрын
@@Дмитрий-ю9к3г Нет, это не происходило на моей стороне - звук считывался программой для вебинаров сразу с микрофона и напрямую пересылался на сервер провайдера. Никаких настроек на моем компьютере эта программа не предоставляла. Так что увы. Именно этот цикл вебинаров не мог быть сразу обработан по звуку. А потом делать обработку слишком затратно по времени. Я же не на звукорежиссера учился :)
@Дмитрий-ю9к3г4 жыл бұрын
@@java8599 подробностей не узнал. Но представляя ситуацию дальше, могу предположить, что вы или громко говорите, что в аппаратной части уже звук давится или сам микрофон близко ко рту расположен. Может быть в самой гарнитуре что-то зашито или она просто не качественная. Или ОСь как-то косячно принимает звук. Ну, в общем я уверен на 99%, что на это можно повлиять действиями именно с вашей стороны.
@Дмитрий-ю9к3г4 жыл бұрын
@@java8599 не хотелось бы, чтобы показалось, будто я предъявы кидаю) Просто озвучиваю, то что невольно вижу(слышу). Может захотите прокачать эту сторону канала.
@AndreiPadikk4 жыл бұрын
спасибо. хороший webinar. подскажите пожалуйста как в NetBeans включить всплывающие Tooltips, которые показывают все конструкры при наведении на код. долго гуглил, но кроме разного набора Hints (что не совсем то) ничего не нашлось.
@java85994 жыл бұрын
Что значит "показывают все конструкторы при наведении на код" ? Это о чем ?
@AndreiPadikk4 жыл бұрын
@@java8599 например на 34:50 секунде видео. когда вы создаёте новый объект new InputStreamReader(). в всплывающем окне показаны 4 возможных конструктора этого класса. как я не наводил мышку, и не настраивал Hints в меню Tools\Options\Editor у NetBeans, - у меня такая подсказка не всплывает. уже подумал, возможно это зависит от реализации JVM; я на Windows, а не на Mac-e.
@java85994 жыл бұрын
@@AndreiPadikk Так это не список конструкторов, а список возможных входных параметров. По-моему Ctrl-P. Не помню точно - давно не пользуюсь NetBeans.
@AndreiPadikk4 жыл бұрын
@@java8599 да, точно, Ctrl-P. спасибо. (Int.Idea как-то более friendly))
@AlexSmile-y2x3 жыл бұрын
@@AndreiPadikk а ничего что в IDEA точно также Ctrl+P?))))
@СтепанТицейко7 жыл бұрын
Спасибо, очень помог!
@nikitinnnnn7 жыл бұрын
Спасибо Антон. Скажите пожалуйста, может ли метод SocketChannel.write(ByteBuffer) писать серверу по внешней сети без задержек или с задержками меньше 100мс? У меня почему то в моем простом тесте при передаче буфера размером 1024 byte за минуту клиент выдает 10-20 задержек по 125-200мс, это я что то не так написал или этот метод так и работает?
@mkrugl4 жыл бұрын
Здравствуйте. А будет ли видео про разницу SQL и NonSQL? В чём суть NonSQL?
@java85994 жыл бұрын
Для начала можно посмотреть вот это видео: kzbin.info/www/bejne/bXTbZWOpiq6sg7M
@mkrugl4 жыл бұрын
Изучаем Java я смотрел. Благодарю. Я вам тот же самый вопрос задал в комментариях под ним).
@java85994 жыл бұрын
Я так понял, вопрос - в чем суть NoSQL ?
@mkrugl4 жыл бұрын
Изучаем Java да, именно. Хотелось бы знать.
@andreyzaytsev5893 жыл бұрын
Вот интересно, у меня когда буфер опустошается то его размер = 0, т.е. проверка работает только когда while (r!=0){
@ЕкатеринаЛьвова-е1ф3 жыл бұрын
Единственное, что никак не пойму, почему мы ссылки на объекты (FileInputStream, FileOutputStream и тп. с классами, работающими с символами) кладем в абстрактный класс?
@java85993 жыл бұрын
Почитайте про полиморфизм. Я могу использовтаь ссылку абстрактоного класса для указания на объект подкласса. Простыми словами - я могу собакой называть и добермана, и овчарку, и пуделя. Если мне важно, что это собака, а не конкретная порода.
@рачс Жыл бұрын
звук ОК(( Но очень хороший материал.
@eduardmart12375 жыл бұрын
А в чем NIO не блокирующий то? ведь все строчки кода же последовательно будут исполняться. Это же не JS где есть async await
@java85995 жыл бұрын
А многопоточный вариант рассматривался ?
@eduardmart12375 жыл бұрын
Не я в том плане что его неблокируемость заключается в повышении производительности? Но все операции все равно идут одна за одной?
@Дмитрий-ю9к3г4 жыл бұрын
Я не понимаю, почему в цикле while сначала записываете, а потом читаете? 17:34 и 26:17. Мы же последний байт теряем, если я все правильно понимаю.
@java85994 жыл бұрын
Неправильно понимаете. Первый байт считывает ДО цикла. И если он считался. то мы заходим в цикл обработки и в конце него снова считываем байт. И если он считался, то цикл повторяется для вновь считанного байта. И снова в конце считываем и пытаемся продолжить цикл только если байт считался. И т.д.. Учитесь читать код - это крайне важный навык.
@Дмитрий-ю9к3г4 жыл бұрын
@@java8599 да, затупил. Просто проверку по-другому всегда реализовывал. С помощью готовых методов, типа ready().
@artemokunkov65914 жыл бұрын
лютый + в карму
@boundlesspower55647 жыл бұрын
четко
@QintruderQ7 жыл бұрын
Я представил это (NIO) как резервуары с водой, может поможет кому. Вопрос, чтобы работать со строками, нужно разобраться с CharBufer или есть более простое решение. Мне просто нужно в txt файле искать строку, потом производить с ней изменения и уже потом пересоздать файл.
@QintruderQ7 жыл бұрын
Досмотрел видео, сделаю через .nio.File.Files.
@chukkykatz10077 жыл бұрын
Отличное видео. Но блин, чувак, что у тебя с микрофоном? Чего он так орет периодически?
@andrew-ua4 жыл бұрын
вы издеваетесь, а где Scanner ???? Шо за нафиг???
@java85994 жыл бұрын
Как сказал Козьма Прутков - нельзя объять необъятное. Если считаете, что Scanner очень важная вещь - сделайте свой вебинар или свое видео.
@ДмитрийКарякин-в4з6 жыл бұрын
Как же ты бесишь своими прилагательными (красивенький, миленький)...
@ModestItogo5 жыл бұрын
точно лишней слащавой пурги много
@rufat854 жыл бұрын
а по мне норм
@gagogoga7944 жыл бұрын
Скажи спасибо за инфу.
@РомчанскийРомчансков4 жыл бұрын
Не выебывайся, тебе тут лекцию отличную предоставили бесплатно
@ПавелПузырев-д6х2 жыл бұрын
Это синтаксический сахар. Спасибо за отличную лекцию!
@EdwardNorthwind Жыл бұрын
А зачем в примере с NIO и Channel второй буфер? Что мешает написать: int r = inChannel.read(bb); while (r != -1) { bb.flip(); outChannel.write(bb); bb.clean(); r = inChannel.read(bb); }
@felixvoid552110 ай бұрын
Теперь я знаю как пылесос затягивает и с каким звуком, если у него есть труба kzbin.info/www/bejne/qGrTkpRvdq9qfc0si=4IoR7gS6quAtQvdY&t=2480 А так лекция ужасно душная. Объясняет плохо. Не знаю чего все с JR рекомендуют его.