Java SE. Урок 31. Потоки ввода вывода (I/O)

  Рет қаралды 80,254

Follow the white rabbit

Follow the white rabbit

7 жыл бұрын

Часто при разработке приложения возникает необходимость в сохранении и извлечении информации из какого либо источника. Для этого используются потоки ввода/вывода, которые представляют собой объекты соответствующих классов. Самые первые классы, появившиеся в Java, связаны с передачей и извлечением последовательности байтов. Эти классы являются потомками абстрактных классов InputStream, OutputStream.
Если речь идет а работе с файлами, то как правило это классы FileInputStream, FileOutputStream. Это если мы говорим о байтовых потоках. Конструкторы данных классов, открывают поток и связывают его с физическим фалом.
Для работы с текстом, с символами, лучше работать с символьными потоками. Эти потоки реализованы от абстрактных классов Reader и Writer.
Класс File. Данный класс используется для работы с файлами и каталогами на внешних носителях. С содержимым файлов данный класс не работает, но он позволяет создавать, удалять файлы, изменять их имя, ограничивать доступ, работать с каталогами и многое другое.

Пікірлер: 99
@haykvardevanyan4683
@haykvardevanyan4683 2 жыл бұрын
удивляюсь как можно так грамотно рассказывать, никаких слов паразитов и никакой воды, уже как раз эти видео помогают лучше чем книги, спасибо большое!
@followthewhiterabbit6924
@followthewhiterabbit6924 2 жыл бұрын
Спасибо и Вам )
@user-cm4tm4pl3t
@user-cm4tm4pl3t 5 жыл бұрын
Оооооотличный урок.И голос хорошо ложится в сознание.Так держать.Спасибо за труд))))
@andrei8447
@andrei8447 4 жыл бұрын
один из немногих кто так понятно всё разжовывает Спасибо
@Guitarslave4
@Guitarslave4 3 жыл бұрын
Зашел ради метода который : "Мы рассматривать не будем" xD.
@sectorsj
@sectorsj 3 жыл бұрын
Александр! Спасибо Вам большое, за материал.. .очень полезно, даже спустя 4 года....хотелось бы увидеть новые видео на Вашем канала... даже есть тема - Клиент-Серверные приложения (библиотеки io, nio, netty)...
@maximvlasov3088
@maximvlasov3088 3 жыл бұрын
Спасибо за урок! Очень полезно и довольно хорошо объяснено!
@palatense6584
@palatense6584 7 жыл бұрын
Очень хороший урок! Спасибо!
@followthewhiterabbit6924
@followthewhiterabbit6924 7 жыл бұрын
Пожалуйста )
@user-rp9xr6oh7k
@user-rp9xr6oh7k 7 жыл бұрын
Большое спасибо за видео, очень хорошо обьяснили.
@antonrv6269
@antonrv6269 5 жыл бұрын
Объяснение просто супер!!!
@vadimpopov1674
@vadimpopov1674 4 жыл бұрын
Хороший урок, все понятно объясняет)
@aRobert
@aRobert 5 жыл бұрын
Спасибо, очень понятное объяснение!
@eltrading7356
@eltrading7356 5 жыл бұрын
Спасибо большое! Всё доступно объяснили
@Sanchio
@Sanchio 2 жыл бұрын
Большое спасибо за доходчивое объяснение! Кто пришел с JavaRush - привет)))
@tokepala5227
@tokepala5227 5 жыл бұрын
Спасибо тебе, Чуев Александр!!!
@portmanchan
@portmanchan Жыл бұрын
Отличное видео, помогло разобраться.
@zomgree
@zomgree 5 ай бұрын
Посмотрел несколько лекций - это одна из лучших где понятно и без воды обьяснили. Единственное что бы подметил: - с try-with-resources можно и без блока finally и не закрывать потоки, это происходит автоматически - в цепочках потоков достаточно закрыть только один, чтоб закрылись все
@kransbect7126
@kransbect7126 4 ай бұрын
видео было выложено 7 лет назад и тогда наверно еще не было блока try-with-resources. Он был добавлен с 7 версии
@zomgree
@zomgree 4 ай бұрын
@@kransbect7126 да я тоже об этом думал когда писал, но 7-я вышла в 2011 году. Ну не суть, возможно кому-то будет полезным комментарий, я не пытался "умничать")
@KirillMvS
@KirillMvS 10 ай бұрын
Спасибо за видео, очень доходчиво)
@user-ek1uu5yw9g
@user-ek1uu5yw9g 3 жыл бұрын
Братик а можешь после каждого видео оставлять комментарий в виде задачи чтобы потом закреплять навык самостоятельно
@romanmotovilov129
@romanmotovilov129 5 жыл бұрын
Спасибо тебе добрый человек!!!
@NiflheimForever
@NiflheimForever 4 жыл бұрын
Разобрался полностью только после изучения других способов чтения с файла. Мне кажется, рано вы эту тему затронули, но спасибо за уроки! Жаль, что у вас сейчас времени нет на уроки.
@djadjaandrey
@djadjaandrey Жыл бұрын
Thanks a million!!!😊😊😊
@whiteguards43
@whiteguards43 2 жыл бұрын
Спасибо за видео!
@takezo_kyiv
@takezo_kyiv 6 жыл бұрын
Спасибо большое Вам!
@user-qr4oz9fs8r
@user-qr4oz9fs8r Жыл бұрын
При создании обьекта класса FileOutputStream, в конструктор можно кроме пути к файлу для записи можно передать так же и boolean'овское true и тогда в файл так же будет дозаписываться информация, а не затираться. И уже можно не использовать класс FileWriter
@RumEvo
@RumEvo Жыл бұрын
Хотел написать, полистал коменты, а меня опередили!)
@Yukius
@Yukius Жыл бұрын
Красавчик
@maksymparfenii6950
@maksymparfenii6950 7 жыл бұрын
Очень нравятся Ваши видеоуроки, Александр! Когда следующее видео?
@followthewhiterabbit6924
@followthewhiterabbit6924 7 жыл бұрын
Спасибо ) Скорее всего уже на следующей неделе.
@edmond-dantes-1796
@edmond-dantes-1796 5 жыл бұрын
Орнул с АСЦ2
@TheGloriousRussian
@TheGloriousRussian 3 жыл бұрын
Главное что всем понятно было.
@user-pv1zw2oe5k
@user-pv1zw2oe5k 2 жыл бұрын
Классно. Лайк)
@rhythmicpulse2760
@rhythmicpulse2760 3 жыл бұрын
Очень интересно
@Andrzej3935
@Andrzej3935 3 жыл бұрын
Спасибо вам огромное!
@followthewhiterabbit6924
@followthewhiterabbit6924 3 жыл бұрын
Спасибо Вам!)
@njs4724
@njs4724 6 жыл бұрын
Spasibo!
@Vovadfdf
@Vovadfdf 3 жыл бұрын
Круто
@user-qy7yv1ut4c
@user-qy7yv1ut4c 7 жыл бұрын
спасибо)
@user-rv4cf7lo4i
@user-rv4cf7lo4i 2 жыл бұрын
спасибо большое
@Rick137-C.
@Rick137-C. 4 жыл бұрын
Кодировка UTF-8 не работает. Все русские символы заменяются вопросами. А кодировка windows-1251 работает
@rostikandrusiv2053
@rostikandrusiv2053 3 жыл бұрын
не лучше ли использовать try with resources, вместо того, чтобы закрывать поток в блоке finally?
@danaoshakbay7900
@danaoshakbay7900 6 жыл бұрын
Cпасибо!!!
@user-ku8qb1rn1g
@user-ku8qb1rn1g 2 жыл бұрын
Тот самый момент, когда уже закончил задачку со степика, а теперь наткнулся на ее решение при закреплении теории)
@user-pr1bk7sx8o
@user-pr1bk7sx8o 6 жыл бұрын
Рахмет!
@entyao
@entyao 4 жыл бұрын
Спасибо
@mrMarseleene
@mrMarseleene 5 жыл бұрын
2 года уже прошло, но все же, чтобы файл точно записывался filewriterом надо использовать flush()
@user-gc4nx8tm2u
@user-gc4nx8tm2u Жыл бұрын
кто объяснит механику flush?
@adrtalladi2404
@adrtalladi2404 4 жыл бұрын
Хочу предложить вам идею : делать уроки - примеры простого использования методов в Классах . Например ,сейчас ищу пример и не могу найти - использвания кодировки и смена её в потоке (InputStreamReader).
@vitaliiche2706
@vitaliiche2706 7 жыл бұрын
Great! Thanks, White rabbit!
@followthewhiterabbit6924
@followthewhiterabbit6924 7 жыл бұрын
И Вам ещё раз спасибо за обратную связь! Приятно осознавать, что проделанная работа была выполнена не зря )
@vitaliiche2706
@vitaliiche2706 7 жыл бұрын
Ваш стиль изложения материала способствует быстрому пониманию. Лаконично, спокойная-уверенная речь, разъяснение возможных ньюансов (возможные ошибки), уточнения по ходу написания кода и даже подсказки по "горячим" клавишам. Это всё что нужно новичку. Если будете и дальше выкладывать видео по JAVA с удовольствием буду изучать. С ув.
@vitaliiche2706
@vitaliiche2706 7 жыл бұрын
Александр, хочу Вас попросить (если, конечно, найдете время и желание) "раскрыть тему" Многопоточность. Спасибо!
@followthewhiterabbit6924
@followthewhiterabbit6924 7 жыл бұрын
Планирую записать видео, но пока совсем нет времени
@protiv_bio
@protiv_bio 6 жыл бұрын
И еще, наверняка вы раньше объясняли, почему правильно объявлять fileOutputStream до фактической инициализации, где это можно увидеть?
@user-kg4zj1gb3s
@user-kg4zj1gb3s 7 жыл бұрын
Александр а для изображений этот метод действует. Могли бы вы посвятить видео о том как можно обработать изображение.
@alexkurgan2008
@alexkurgan2008 7 жыл бұрын
Отлично обьясняете,хотел бы по интересоваться,случайно не будете выпускать видео уроки по Java2ee ? очень бы хотел с ваших уст послушать
@followthewhiterabbit6924
@followthewhiterabbit6924 7 жыл бұрын
Спасибо, будет!) Только ещё SE надо добить )
@alexkurgan2008
@alexkurgan2008 7 жыл бұрын
будем ждать)) а так палец верх вам!
@ANGRYROGERR
@ANGRYROGERR 6 жыл бұрын
кодировка ASCII читается как АСКИ, а не А-ЭС-ЦЕ-ДВА
@andriybondarenko6282
@andriybondarenko6282 7 жыл бұрын
Вечер добрый! Александр, спасибо большое за урок! Извините, Вы говорили, что в файл не дописывалась информация, а после добавления блока final все заработало. Скажите, пожалуйста, Вы тогда просто добавили блок final без закрытия потока и закрывали его в теле блока try, либо закрывали поток в блоке final?
@followthewhiterabbit6924
@followthewhiterabbit6924 7 жыл бұрын
Заговорился и не договорил... Конечно не просто блок final, а еще и закрытие потока, в нем. Пожалуйста )
@eugenetaranoff1122
@eugenetaranoff1122 7 жыл бұрын
Здравствуйте, у меня запустилось нормально на cp1251, а на UTF-8 сплошные нули, может в своей IDE не выставил кодировки правильно?
@followthewhiterabbit6924
@followthewhiterabbit6924 7 жыл бұрын
Здравствуйте, вполне может быть. В Eclipse, если не ошибаюсь, по умолчанию стоит cp1251.
@eugenetaranoff1122
@eugenetaranoff1122 7 жыл бұрын
Вот именно, все сходится, спасибо)
@alexandrkomar4741
@alexandrkomar4741 3 жыл бұрын
и мне помогло
@user-jv6sj3xw1n
@user-jv6sj3xw1n 4 жыл бұрын
Добрый день А разве FileOutputStream не имеет конструктора с boolean append ?
@mcae17
@mcae17 5 жыл бұрын
Спасибо большое! А для чего необходима такая запись c =null?: FileInputStream fis=null; fis=new FileInputStream(path)
@user-pt2lq1ik7i
@user-pt2lq1ik7i 5 жыл бұрын
чтобы переменная fis была видна за пределами блока try, в частности, чтоб закрыть поток.
@user-dq9ub1lj9j
@user-dq9ub1lj9j 6 жыл бұрын
печально конечно, что канал бросили
@TheGloriousRussian
@TheGloriousRussian 2 жыл бұрын
А почему вы не используете try with resources в своих примерах? это же проще и код читается лучше.
@followthewhiterabbit6924
@followthewhiterabbit6924 2 жыл бұрын
Согласен! Уже даже и не вспомню почему ))
@ax3914
@ax3914 7 жыл бұрын
есть уроки про потоки?(Thread)
@freedomkazakhstan1642
@freedomkazakhstan1642 3 жыл бұрын
Здравствуй "АВТОР" !!! Я пересмотрел твой курс, очень зачетный. Спасибо огромное. Есть один вопрос: Как использовать использовать команды клавиш на Макбуке, особенно "alt insert" в IntelliJ IDEA, эта команда у меня не работает. Как настроить IntelliJ IDEA правильно, подскажи. СПАСИБО заранее !!!
@followthewhiterabbit6924
@followthewhiterabbit6924 3 жыл бұрын
Спасибо и Вам ) Если честно не помню, что это команда делает ) Вот тут можно список комбинаций посмотреть: www.jetbrains.com/help/rider/Reference_Keymap_Rider_OSX.html#find и на русском otus.ru/nest/post/494/
@user-jv6sj3xw1n
@user-jv6sj3xw1n 4 жыл бұрын
И ещё У вас на 9:38 IDEA подсказывает, что fis.close() может выкинуть NullPointerException, так как мы чуть выше присвоили этому объекту null. Как в этом случае избежать этого исключения ? Вводить дополнительно проверку на null ?
@followthewhiterabbit6924
@followthewhiterabbit6924 4 жыл бұрын
Да, все верно
@user-jv6sj3xw1n
@user-jv6sj3xw1n 4 жыл бұрын
@@followthewhiterabbit6924 спасибо
@bhms-binary
@bhms-binary 2 жыл бұрын
А как создать новый файл? (В коде, не в проводнике)
@user-hg6hq1fn2y
@user-hg6hq1fn2y 4 жыл бұрын
сделал все как по видео, но почему та все равно русские буквы не читаются, а вместо них знаки вопроса, может кодировку какую нибудь другую надо?
@jessyjester6215
@jessyjester6215 4 жыл бұрын
У меня при выводе сообщения "Hello Java Привет Мир" Hello Java выводится, а Привет Мир выводится в виде ромбиков черных со знаками вопросов это уже после назначения кодировки UTF-8, я так понимаю дело с кодировками по умолчанию в JDK? Буду благодарен, если объясните как настроить
@user-gc4nx8tm2u
@user-gc4nx8tm2u Жыл бұрын
CP1251 - вот верная, а не UTF-8
@user-gc6mp5om2p
@user-gc6mp5om2p 6 жыл бұрын
На что вы нажали чтобы посмотреть классы в пакете IO ?
@Dr0n4egSTAR
@Dr0n4egSTAR 6 жыл бұрын
Наводишь на io и на windos это ctrl+b или ctrl+нажать левой кнопкой мыши, на маке вместо ctrl клавиша cmd. Так можно переходить по методам и классам да и переменным в места где они обьявляются и наоборот в места где они используются.
@Petr7Lun
@Petr7Lun 6 жыл бұрын
Не совсем понимаю для чего в конце закрывать потоки в finally? может кто объяснит ?:
@followthewhiterabbit6924
@followthewhiterabbit6924 6 жыл бұрын
В данном случае, для того чтобы "разорвать связь" между файлом и нашим приложение. Другими словами освободить ресурсы.
@alexandrkomar4741
@alexandrkomar4741 3 жыл бұрын
запустилась с аски ср1251
@AZAZELLO__
@AZAZELLO__ 5 жыл бұрын
Многое поверхностно описано, не показано несколько ключевых конструкций...
@good_night_rf
@good_night_rf 6 жыл бұрын
Java library выучить невозможно. Слишком много кода там и всё это запомнить нереально.... даже за 20лет
@followthewhiterabbit6924
@followthewhiterabbit6924 6 жыл бұрын
Учить и не надо )) Надо знать, что можно делать и как это делать, а что нельзя. Ну и конечно google в помощь ))
@alibn2911
@alibn2911 3 жыл бұрын
очень долго и нудно, как я люблю
@felixvoid5521
@felixvoid5521 3 ай бұрын
на 2024 год инфа устарела
@stanislavfilipov487
@stanislavfilipov487 Жыл бұрын
чувак, ты крут! System.out.println ("Thank you!")
Java SE. Урок 33. Java Collections Framework ( коллекции Java )
4:56
Follow the white rabbit
Рет қаралды 25 М.
ТВОЯ ГЛАВНАЯ ОШИБКА В ООП
8:45
ExtremeCode
Рет қаралды 610 М.
Best Toilet Gadgets and #Hacks you must try!!💩💩
00:49
Poly Holy Yow
Рет қаралды 22 МЛН
Playing hide and seek with my dog 🐶
00:25
Zach King
Рет қаралды 36 МЛН
Finger Heart - Fancy Refill (Inside Out Animation)
00:30
FASH
Рет қаралды 28 МЛН
Ouch.. 🤕
00:30
Celine & Michiel
Рет қаралды 23 МЛН
Java File Input/Output - It's Way Easier Than You Think
8:18
Coding with John
Рет қаралды 444 М.
Чего ожидать от HTTP/3 + Go
51:07
Нина Пакшина
Рет қаралды 9 М.
Урок 17. Работа с файлами. Потоки ввода-вывода
27:43
JAVA простым языком
Рет қаралды 12 М.
Изучение Java в одном видео уроке за час!
1:06:58
Гоша Дударь
Рет қаралды 1 МЛН
Урок Java 169: Работа с файлами и стримы
30:41
Best Toilet Gadgets and #Hacks you must try!!💩💩
00:49
Poly Holy Yow
Рет қаралды 22 МЛН