Java для начинающих. Урок 45: Сериализация (часть 1).

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 ธ.ค. 2024

ความคิดเห็น • 194

  • @alishevN
    @alishevN  7 ปีที่แล้ว +54

    Флаг = индикатор.

    • @ОстапЛьвовский
      @ОстапЛьвовский 6 ปีที่แล้ว +1

      какой Флаг = индикатор.?

    • @sayhellotoroy
      @sayhellotoroy 6 ปีที่แล้ว +9

      @@ОстапЛьвовский интерфейс-маркер, что бы обозначить, что данный класс пренадлежит к чему-то. В данном случае к Серилазизации

  • @Andrzej3935
    @Andrzej3935 3 ปีที่แล้ว +22

    Вы просто лучший учитель, всё последовательно и без лишних слов/усложнений. Спасибо вам!

  • @Мечтысбываются-я6ы
    @Мечтысбываются-я6ы 2 ปีที่แล้ว +6

    Спасибо большое. Очень доступно! Преподаватель от Бога!

  • @zeroQuantumNull
    @zeroQuantumNull 3 ปีที่แล้ว +3

    Вы лучший на ютубе по урокам java. Мне всё нравиться. Ваши видосы + статьи + книга = мощь

  • @Kusokbanana15
    @Kusokbanana15 2 ปีที่แล้ว +3

    Отличное, подробное объяснение на простом, понятном примере.
    Информация усваивается мгновенно.
    Благодарю за труд.

  • @azizbek5375
    @azizbek5375 4 ปีที่แล้ว +10

    Только не останавливайся, у тебя очень полезные видеоуроки

  • @LordLOTAR
    @LordLOTAR 4 ปีที่แล้ว +5

    Единственный на Ютубе кто объясняет очень точно и доходчиво , все четко и детально спасибо вам

  • @androidkotlin-6234
    @androidkotlin-6234 3 ปีที่แล้ว +4

    Красава, парень!
    Доступно объясняешь!

  • @undead9179
    @undead9179 2 ปีที่แล้ว +3

    Лучшее объяснение, которое я встречал, спасибо)

  • @hannahr5037
    @hannahr5037 7 ปีที่แล้ว +6

    _Отличный туториал. Все просто и понятно._

  • @SorroDorro
    @SorroDorro 3 ปีที่แล้ว +11

    А разве мы не должны закрывать поток в блоке?
    finaly{
    oos.close()
    }
    так как в блоке try, может вылететь exception и поток не закроется

    • @siverov21
      @siverov21 3 ปีที่แล้ว +4

      Так и есть
      Верное уточнение

    • @worker_chan1301
      @worker_chan1301 10 หลายเดือนก่อน

      Более правильно использовать try с ресурсами

  • @asunali313
    @asunali313 6 ปีที่แล้ว +130

    на javarush один из пользователей в комментарии оставил ссылку на это видео.
    у этого коммента 22 лайка.
    я подумал вам стоит знать)

    • @Sleeptoken-p6u
      @Sleeptoken-p6u 6 ปีที่แล้ว +4

      Я как раз оттуда)

    • @ArtemNiknameName
      @ArtemNiknameName 5 ปีที่แล้ว

      уже 69

    • @arthurfonzerelli6484
      @arthurfonzerelli6484 5 ปีที่แล้ว +1

      О, это же был я))

    • @arthurfonzerelli6484
      @arthurfonzerelli6484 5 ปีที่แล้ว +6

      @@einoharanen6828 зря ты так. как сборник задач - jr вполне норм. Теория там конечно не очень объясняется.

    • @Cluster-live
      @Cluster-live 5 ปีที่แล้ว

      83

  • @dmytrohelbak
    @dmytrohelbak 6 ปีที่แล้ว +14

    Раньше в комменте писал тебе, что ты лучший, но сорри...
    Ты САМЫЙ ЛУЧШИЙ!!!
    Спасибо again))

  • @MyChoozy
    @MyChoozy 4 ปีที่แล้ว +6

    там в обработке ошибки имеет смысл поставить логическое или между файлнотфаунд и айо эксепшенами. это и предлагала сделать идея. спс, хороший урок, как всегда.

    • @dmitriyfedorino4255
      @dmitriyfedorino4255 4 ปีที่แล้ว +6

      Поправка - IDE не предлагала трансформировать 2 catch блока в multi-catch блок, так как FileNotFoundException наследуется от IOException. Символ, которым разделяются исключения в multi-catch блоке называется vertical bar и не является логическим "или"
      docs.oracle.com/javase/7/docs/technotes/guides/language/catch-multiple.html

    • @liberatdoleg5965
      @liberatdoleg5965 ปีที่แล้ว

      Мульти кэтч, можно было бы использовать тут IOException | ClassNotFoundException только

  • @ИльяСпильниченко
    @ИльяСпильниченко 4 ปีที่แล้ว +3

    Супер объяснение, спасибо!

  • @Devivl
    @Devivl 2 ปีที่แล้ว

    Огромная благодарность, Наиль! Очень четкое объяснение.

  • @JohnnyIntoHell
    @JohnnyIntoHell 4 ปีที่แล้ว +1

    7:20 много раз пересмотрел, но не дошло)))
    а видео отличные!!Спасибо тебе!

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 2 ปีที่แล้ว

      что именно не понятно?

    • @qreol136
      @qreol136 2 ปีที่แล้ว

      @@Das.Kleine.Krokodil Как ваши успехи?)

  • @ilyazvorygin7284
    @ilyazvorygin7284 3 ปีที่แล้ว +1

    Отличное объяснение, спасибо за Ваш труд!

  • @MgsMen
    @MgsMen ปีที่แล้ว

    Тупо топ учитель. Идеальное сочетание практики и теории

  • @pavel_kotik
    @pavel_kotik 7 ปีที่แล้ว +16

    Ты топ! Сколько видео просмотрено, сколько джаварашей и прочих перекодировано, но только ты помог мне разобраться со множеством вопросов.
    Моё почтение и моя подписка обеспечены (:

    • @alishevN
      @alishevN  7 ปีที่แล้ว +3

      :)

    • @fara0n333
      @fara0n333 7 ปีที่แล้ว +3

      Потому что все по мелочам розьясняет )

    • @diegod4811
      @diegod4811 7 ปีที่แล้ว

      И как Javarush?

    • @ПавелШишаев-з3з
      @ПавелШишаев-з3з 7 ปีที่แล้ว

      давно пора прочитать философию джавы и не тратить время на просмотр видосов которые можно сомтреть в х2 скорости

  • @halcyon-s
    @halcyon-s ปีที่แล้ว

    Большое спасибо за уроки!

  • @timankov
    @timankov 2 ปีที่แล้ว

    лучшее объяснение, что я видел!! спасибо!)

  • @vlad_ok99hlcst88
    @vlad_ok99hlcst88 7 ปีที่แล้ว +1

    Какой же ты четкий)) все-все понятно. Продолжай в том же духе!)

    • @alishevN
      @alishevN  7 ปีที่แล้ว +4

      Спасибо! Скоро выйдет мой курс "Продвинутая Java". Будут затронуты такие темы как коллекции, многопоточность, тестирование и многое другое. Следите за обновлениями на канале :)

    • @vlad_ok99hlcst88
      @vlad_ok99hlcst88 7 ปีที่แล้ว

      javaRussia конечно буду следить) ты единственный по джаве кого я смотрю и на кого подписан)

  • @borikosipyan
    @borikosipyan 7 ปีที่แล้ว +6

    Спасибо огромное за Ваш труд! Он действительно очень полезен. Посмотрел этот урок и сразу подписался.

  • @evaristegalois450
    @evaristegalois450 5 ปีที่แล้ว +2

    лучший лектор

  • @alekseyfrozis937
    @alekseyfrozis937 5 ปีที่แล้ว +10

    А как узнать сколько объектов в файле? В примере мы точно знаем, что их 2, потому и создаем 2 скастованных объекта типа Person. А если бы мы не знали кол-ва объектов, которых надо считать?? Подскажите, пжста

    • @complexity7032
      @complexity7032 2 ปีที่แล้ว +1

      циклом проходишся по всем возможным файлам, которые могут существовать

    • @code_la
      @code_la ปีที่แล้ว

      ​@@complexity7032 не совсем лучший вариант. Имхо Лучше завести поля с доп информацией, и с ними работать

  • @kladmonet9
    @kladmonet9 4 ปีที่แล้ว

    Благодарю, просмотрел с интересом!

  • @Alexey2872
    @Alexey2872 10 หลายเดือนก่อน

    Замечательное видео все оч понятно

  • @FreeFire-zd3ql
    @FreeFire-zd3ql 4 ปีที่แล้ว

    Очень полезное видео, лайк подписка и спасибо

  • @rodiongolovin7736
    @rodiongolovin7736 5 ปีที่แล้ว +1

    Очень наглядно!! Круто

  • @mikhaillazarev5378
    @mikhaillazarev5378 2 ปีที่แล้ว +1

    Это прекрасно.

  • @Anatoli-bq1pe
    @Anatoli-bq1pe 2 ปีที่แล้ว +1

    Большое спасибо!

  • @sergiyrudenko905
    @sergiyrudenko905 6 ปีที่แล้ว

    Спасибо большое!!! Отличное видео!

  • @ВербицкийВиктор
    @ВербицкийВиктор 7 ปีที่แล้ว

    Все очень доступно, спасибо.

  • @sedasimonyan4103
    @sedasimonyan4103 4 ปีที่แล้ว

    Спасибо огромное @alishev

  • @itNet12
    @itNet12 6 ปีที่แล้ว

    спасибо большое за курс

  • @Artem_35_
    @Artem_35_ 6 ปีที่แล้ว +10

    Спасибо большое. Пересматриваю уже и возник вопрос.
    Вы закрываете объекты FileInputStream/FileOutputStream, а почему не закрываете сразу после этого соответствующие объекты ObjectInputStream/ObjectOutputStream?

    • @skt5659
      @skt5659 5 ปีที่แล้ว +19

      Думаю вы уже разобрались, так что пишу на будущее...
      Он закрывает не FileInputStream/FileOutputStream, а ObjectInputStream/ObjectOutputStream...
      Object поток оборачивает Файловый поток, и когда закрывается внешний поток, внутренний тоже будет закрыт, надеюсь я правильно понял)

    • @ДмитрийКайма
      @ДмитрийКайма 4 ปีที่แล้ว

      @@skt5659 А это работает также с File и Scanner, PrintWriter?

  • @ИгорьЧумиков-й5б
    @ИгорьЧумиков-й5б 5 ปีที่แล้ว

    Шикарно объяснил) Спасибо тебе

    • @Holdy_Couldy
      @Holdy_Couldy 4 ปีที่แล้ว +2

      здорова, заметил ты тут под каждым видео коммент оставляешь. и теперь перед тем как посмотреть видео смотрю оставил ли тут коммент или нет. впереди еще десяток уроков и надеюсь, что ты там тоже откоментил а то я не знаю

    • @ИгорьЧумиков-й5б
      @ИгорьЧумиков-й5б 4 ปีที่แล้ว +2

      @@Holdy_Couldy привет . Всегда ставлю комментарии чтобы об авторе многие узнали он очень хорошо объясняет, но начал учить другой язык, java не зашла ))) удачи в обучении друг

    • @Holdy_Couldy
      @Holdy_Couldy 4 ปีที่แล้ว +1

      @@ИгорьЧумиков-й5б привет, если не секрет почему не зашла джава и что начал учить и как идет то что ты сейчас учишь?
      спасибо и тебе тоже )))

    • @ИгорьЧумиков-й5б
      @ИгорьЧумиков-й5б 4 ปีที่แล้ว

      @@Holdy_Couldy я работал в техподдержке сказали учи 1с мы тебя повысим до программиста, я забросил начал учить 1с и понял что не моё от слова совсем ))) потом наткнулся на Скуторенко и понял что я влюбился в этот язык swift далее после Скуторенко нашел ребят с сайта Swift Books, и сейчас смотрю их уроки. Конечно многое не понятно это нормально главное делать понимание придет))) но мне нравится IOS

    • @Holdy_Couldy
      @Holdy_Couldy 4 ปีที่แล้ว

      @@ИгорьЧумиков-й5б о, прикольно)) посмотрим насколько меня хватит, но запал еще вроде есть) еще раз удачи и терпения в обучении)

  • @a.d.4418
    @a.d.4418 4 ปีที่แล้ว

    Спасибо за урок

  • @skatskau1102
    @skatskau1102 7 ปีที่แล้ว +7

    Спасибо за урок. Есть вопрос. Объясните, пожалуйста, каким образом у нас "подхватился" переопределённый метод toString(). Где и как именно мы его вызвали в классе ReadObject? Спасибо.

    • @СергейБелоцерковский-п5н
      @СергейБелоцерковский-п5н 6 ปีที่แล้ว +26

      При вызове System.out.println над объектом (класс Object), всегда срабатывает его внутренний метод toString(), который был переопределён ранее. Из оф. документации:
      public String toString()
      Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

  • @Ilya787
    @Ilya787 7 ปีที่แล้ว +13

    Спасибо за видео. Есть вопрос: в Person1 и Person2 мы дважды "одинаково" читаем из объекта ObjectInputStream, но откуда java знает, что в Person2 нужно прочитать именно второй объект, а не первый?

    • @alishevN
      @alishevN  7 ปีที่แล้ว +16

      Возможно название метода "readObject()" не совсем точно отражает суть происходящего. Чтобы стало понятно, представьте, что метод называется "readNextObject()". В реализации ObjectInputStream есть "указатель", который "смотрит" на текущий объект. Вызов метода readObject() сдвигает этот указатель так, чтобы он смотрел на следующий объект в файле.
      Если вам вдруг надо два раза пройтись и десериализовать объекты из файла, вы всегда можете создать второй объект ObjectInputStream и его указатель опять будет смотреть на первый объект в файле.

    • @alekseyfrozis937
      @alekseyfrozis937 5 ปีที่แล้ว +5

      @@alishevN как узнать сколько объектов в файлике? тут мы знаем, что их 2 и создали 2 переменные типа Person. А если бы не знали? Как тогда считать (десериализовать) все файлы, не зная их кол-ва?

    • @Дмитрий-ц5ш5ъ
      @Дмитрий-ц5ш5ъ 3 ปีที่แล้ว

      @@alekseyfrozis937 очень хороший вопрос!!! На который нет ответа :((((

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 2 ปีที่แล้ว

      @@alekseyfrozis937 наверное зависит от задачи
      можно например в начало файла записать сколько там объектов лежит
      или читать пока не возникнет исключения типа "обнаружен конец файла"
      или еще как то

  • @truestories6854
    @truestories6854 6 ปีที่แล้ว +3

    Как посмотреть документацию класса? Я понимаю что есть какая-то комбинация клавиш.

  • @mrnobody9369
    @mrnobody9369 4 ปีที่แล้ว +2

    Объясните кто нибудь пожалуйста зачем мы пишем эту строку , если можем обойтись без нее, и для чего она нужна?public String toString() {
    return id + ":" + name;

    • @NoskovIvan
      @NoskovIvan 4 ปีที่แล้ว +6

      Пересмотри 24 урок про объекты и метод toString, думаю сразу прозреешь, но попробую объяснить. Методом toString ты создаешь инструкцию записи данных объекта. Этот метод он всегда вызывается скрыто у объекта, поэтому если ты удалишь этот метод и попробуешь написать System.out,println(person1), а на самом деле комп видит System.out,println(person1.toString()) с пустым методом toString(), то получишь хэш код - Person@5a2e4553, а создавая этот метод, ты даешь понять компьютеру что тебе нужно записать его ид и имя. Надеюсь это именно так, и я хоть немного дал понять, сам только второй месяц учусь.

  • @antondityatev2338
    @antondityatev2338 4 ปีที่แล้ว +1

    привет. может кто нибудь объяснить, почему объект person1 после прочтения из файла недоступен за блоком try/catch?

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 2 ปีที่แล้ว +1

      из за того что он находятся в фигурных скобках, и только там его видно
      т.е. дело не в try/catch

  • @bfdhtfyjhjj
    @bfdhtfyjhjj 6 ปีที่แล้ว +10

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

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 2 ปีที่แล้ว +1

      видимо автор сначала что то хотел с ними делать
      а так то да, они не нужны в этом примере

  • @LerokUsh
    @LerokUsh 4 ปีที่แล้ว +1

    А почему мы не закрываем fileinputstream и out.. ?

    • @andrei8299
      @andrei8299 4 ปีที่แล้ว +1

      тк их использует ois и oos. Закрывая внешний поток, должен закрываться внутренний в том числе. Также выше был коммент, что закрывать потоки надо в блоке finally или, скорее всего, try с ресурсами тоже может решить этот вопрос

  • @AndreyTimofeev-j8y
    @AndreyTimofeev-j8y 11 หลายเดือนก่อน

    Кто-нибудь знает как считать объекты из файла, если они добавлялись туда в конец (не один раз, модификатор append: true)?

  • @stanislavomelchenko5271
    @stanislavomelchenko5271 5 ปีที่แล้ว +7

    Спасибо , смотрю твою рекламу. Что бы ты за свои труды получал денежку.

  • @easybusyja
    @easybusyja 8 หลายเดือนก่อน

    FileInputStream тоже, наверное, над закрыть?

  • @ЗаринаАничкина
    @ЗаринаАничкина ปีที่แล้ว

    вопрос, в ReadObject когда считывались обе персоны, как система определила, что персон1 это все данные с персон1 в WriteObject? Как разделялись обе персоны правильно?

    • @evpatorya
      @evpatorya ปีที่แล้ว

      видимо эту инфу тоже шифрует в файл

  • @sLasHee85
    @sLasHee85 4 ปีที่แล้ว +3

    Зачем в классе Person создали геттеры, если не воспользовались?

  • @mykolazhabko3228
    @mykolazhabko3228 5 ปีที่แล้ว

    Подскажи как настроить так чтобы в конструкторе класса подсвечивались поля. Спасибо

  • @ИванИванов-л1э6ы
    @ИванИванов-л1э6ы 3 ปีที่แล้ว

    Спасибо за труд все получилось но ничего не запомнилось.

  • @objectobj
    @objectobj 2 ปีที่แล้ว +1

    А почему поток FileInputStream ты закрываешь, а ObjectInputStream - нет?

    • @viacheslav_chudnovskyi
      @viacheslav_chudnovskyi 2 ปีที่แล้ว +1

      Это называется цепочка потоков, достаточно закрыть любой из них

  • @liberatdoleg5965
    @liberatdoleg5965 ปีที่แล้ว

    Есть вопрос, зачем здесь нужны были геттеры? Если мы их не использовали?

  • @agens9538
    @agens9538 2 ปีที่แล้ว

    почему в исключении не создать бы файл?

  • @jamjam3337
    @jamjam3337 4 หลายเดือนก่อน

    спасибо

  • @alexeykatachigov2788
    @alexeykatachigov2788 3 ปีที่แล้ว

    Хм... а если в значениях объекта будет null? Как проверку правильно сделать? Я пробовал if null else но не прокатывает. Все равно null сериализует, а при загрузке ошибку выдает.

  • @artemoborozhnyy2038
    @artemoborozhnyy2038 4 ปีที่แล้ว +1

    Что то я не понял, где ты вызвал метод toString, когда читал файл.
    Как он сам его вызвал? Объясните плз.

    • @МунирЗикруллаев
      @МунирЗикруллаев 4 ปีที่แล้ว

      Я тоже не понял. Кто понял?

    • @hagabobo88
      @hagabobo88 3 ปีที่แล้ว +2

      @@МунирЗикруллаев ту стринг - он же в классе пёрсон. Его же переопределили. он работает каждый раз, когда нужно представить объект в виде строки (например, если в соут положить объект пёрсон1 - джава знает как отобразить этот объект, потому что мы в классе пёрсон "изобразили" отображение объекта)

    • @МунирЗикруллаев
      @МунирЗикруллаев 3 ปีที่แล้ว +1

      @@hagabobo88 Привет.
      Я сейчас сижу и смеюсь над своим вопросом)
      Сейчас я уже работаю джуном😀😀

    • @hagabobo88
      @hagabobo88 3 ปีที่แล้ว

      @@МунирЗикруллаев ну блин, тогда потрать немного своего времени и расскажи про свой путь успеха :)

    • @МунирЗикруллаев
      @МунирЗикруллаев 3 ปีที่แล้ว +1

      @@hagabobo88 учился по этому каналу dmdev. Канал топ!

  • @Steklopod
    @Steklopod 7 ปีที่แล้ว

    То, что нужно было

  • @sergeysergey7176
    @sergeysergey7176 5 ปีที่แล้ว +1

    Программа работает, но почему у меня файле не ничего

    • @gleb_bro8710
      @gleb_bro8710 4 ปีที่แล้ว

      Может поток не закрыл

  • @PowerSharks
    @PowerSharks 7 ปีที่แล้ว

    Thanks a lot!

  • @Artur_Maji
    @Artur_Maji 2 ปีที่แล้ว

    Один момент-
    Почему в writeobject - fos(close), а в ридобджект - ois(close)?

  • @omurturdubekov5182
    @omurturdubekov5182 4 ปีที่แล้ว

    У меня при написании oos.writeObject(person1); ругается что нет такого метода как writeObject! что делать?

    • @КостяБ-б1п
      @КостяБ-б1п 3 ปีที่แล้ว

      как решил проблему?

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 2 ปีที่แล้ว

      у меня так было когда с большой буквы написал

  • @olexiypysarenko8090
    @olexiypysarenko8090 6 ปีที่แล้ว

    Thank you!

  • @pdmkch
    @pdmkch 4 ปีที่แล้ว

    спасибо!

  • @nikolakyz85
    @nikolakyz85 3 ปีที่แล้ว +2

    Единственный вопрос, который у меня остался после просмотра - почему нельзя поставить лайк дважды?!

  • @rufat85
    @rufat85 5 ปีที่แล้ว

    клёвый канал, я тоже с джавараш.

  • @farfar3890
    @farfar3890 3 ปีที่แล้ว

    огонь!

  • @timankov
    @timankov 2 ปีที่แล้ว

    жаль нельзя два лайка поставить!))

  • @Anatolii_Bychko
    @Anatolii_Bychko ปีที่แล้ว

    Задам вопрос, пересмотрел все комменты нет такого вопроса. Я все делал по Вашему коду, но решил ID инкрементировать в конструкторе, что б по понятным причинам его не вводить. Так тогда с таким кодом все записывается в файл, но увы не считывается, может дальше в уроках и есть на это ответ, но пока что еще не дошел, вот и спрашиваю. Как можно решить даную проблему? Еще раз благодаою за отличный урок, лайкнул и подписался.

  • @samposebe1268
    @samposebe1268 2 ปีที่แล้ว

    а почему джава по умолчанию не делает калссы сериализуемыми - это связано с какими-либо тратами ресурсов?

    • @ZeBatua
      @ZeBatua ปีที่แล้ว

      Значит надо)
      У программистов ничего не бывает просто так

  • @Last_Feanoring
    @Last_Feanoring 3 ปีที่แล้ว

    А если бы переменные в классе ReadObjects назывались бы person 3 i person 4? мэйн скачал бы для их полей значение из файла для 1 и 2 персоны?

    • @AlexShev01
      @AlexShev01 3 ปีที่แล้ว

      Да конечно, мы их могли вообще в массив считать

    • @DolphinArtem
      @DolphinArtem 3 ปีที่แล้ว

      @@AlexShev01 не понятно, напишите, пожалуйста, пример.

  • @Виталий-й8р6м
    @Виталий-й8р6м 5 ปีที่แล้ว

    Очень все круто. Но есть вопрос, а если человек который сидит за другим компом. хочет прочитать файл но он не знает ничего о классе Person. Тогда он не сможет создать (Person)ois.readObject(). Как тогда быть?

    • @alishevN
      @alishevN  5 ปีที่แล้ว +1

      Мы сериализуем не класс, а именно объект класса. Так что человек за другим компьютером должен у себя иметь класс Person. Причем его класс Person должен полностью совпадать с нашим. Прочитав наш файл, он получит сохраненный объект этого класса.

    • @Виталий-й8р6м
      @Виталий-й8р6м 5 ปีที่แล้ว

      @@alishevN Понял, спасибо.

  • @arturfn5256
    @arturfn5256 5 ปีที่แล้ว

    Почему у меня компилятор выдает следующее?
    com.company.file.writeandread.Person@5f4da5c3
    com.company.file.writeandread.Person@443b7951
    Это уже при чтении из файла

    • @TheSweetMoloko
      @TheSweetMoloko 5 ปีที่แล้ว +1

      у тебя toString переопределён в классе Person?

    • @arturfn5256
      @arturfn5256 5 ปีที่แล้ว +1

      @@TheSweetMoloko в этом и была ошибка)

  • @МаратВикторович-т3н
    @МаратВикторович-т3н 3 ปีที่แล้ว +2

    Сейчас людей не id, а QR код)))

  • @yuras182
    @yuras182 5 ปีที่แล้ว +3

    Привет! Спасибо за уроки. Вы закрываете потоки в блоке try, но если возникнет исключение то поток закрыт не будет. Не лучше ли закрывать в finally?

    • @alishevN
      @alishevN  5 ปีที่แล้ว +6

      Согласен. Лучше в finally.

    • @divergenny
      @divergenny 3 ปีที่แล้ว

      А как его в finally закрыть если мы с помощью try Catch ловили исключение ? переменная же не будет видна в finally

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 2 ปีที่แล้ว +3

      @@divergenny один из вариантов такой, и погугли еще "закрытие потоков в java при исключениях"
      FileInputStream fis = null;
      ObjectInputStream ois = null;
      try {
      fis = new FileInputStream("people.bin");
      ois = new ObjectInputStream(fis);

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 2 ปีที่แล้ว +1

      @@divergenny и см урок 47

    • @divergenny
      @divergenny 2 ปีที่แล้ว +1

      @@Das.Kleine.Krokodil Спасибо большое

  • @marianservachak3407
    @marianservachak3407 7 ปีที่แล้ว

    Спс за видос. Есть вопрос. А что если у нас 50 объектов а не два?

    • @dev_bob
      @dev_bob 7 ปีที่แล้ว

      foreach в помощь

  • @Verlaine-n2o
    @Verlaine-n2o 3 ปีที่แล้ว

    Лучший

  • @КахарманБалтабаев-б2о
    @КахарманБалтабаев-б2о 4 ปีที่แล้ว

    Шикарные уроки!!!! Есть вопрос, почему мы в классе Person переопределяем метод toString, а не создаём новый с другим именем, например getInfo?

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 2 ปีที่แล้ว +2

      потому что это проще и так заложено в java
      для сравнения:
      System.out.println(person1)
      System.out.println(person1.getInfo())

    • @RadioGubitel
      @RadioGubitel ปีที่แล้ว

      @@Das.Kleine.Krokodil Можно же прсто person1.getinfo(); а в методе getinfo уже будет спрятан println

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil ปีที่แล้ว

      @@RadioGubitel а если не нужно выводить на экран?

    • @RadioGubitel
      @RadioGubitel ปีที่แล้ว

      @@Das.Kleine.Krokodil тогда не выводить. Обычно я создаю метод print или printAll если вывести все элементы. А get это геттер.

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil ปีที่แล้ว +1

      @@RadioGubitel зачем создавать print если он уже есть

  • @ThePetrovichl32
    @ThePetrovichl32 7 ปีที่แล้ว +1

    Очень жду ваши уроки! Спасибо вам огромное за них! Подскажите пожалуйста, если не секрет, какую книгу вы могли бы порекомендовать по Java для чтения?

    • @alishevN
      @alishevN  7 ปีที่แล้ว +3

      Брюс Эккель - "Философия Java"

    • @ThePetrovichl32
      @ThePetrovichl32 7 ปีที่แล้ว

      Спасибо

  • @education7282
    @education7282 7 ปีที่แล้ว

    Когда в качестве конструктора для ObjectOutputStream я передаю fos, то в окне лампочки отсутствует пункт
    "Generalize catch for "java.io.FileNotFoundException" to "java.io.IOException""(prntscr.com/g01ag1). Каким образом мне обойти эту проблему и какая причина того, что у меня нет данного пункта? Старая версия java?(7)
    Пользуясь моментом, хотел бы поблагодарить вас за столь полезные и информативные видео. Очень рад, что нашёл ваш канал)

    • @alishevN
      @alishevN  7 ปีที่แล้ว

      Скорей всего вам надо обновить Intellij Idea.

    • @education7282
      @education7282 7 ปีที่แล้ว

      Спасибо, теперь всё работает

  • @Николь-к6н
    @Николь-к6н 7 ปีที่แล้ว

    Я только не могу понять , почему ты не юзаешь try с ресурсами.
    А так класс рассказываешь.
    Жалко , что занялся коммерцией и новый курс платный)
    За 5 баксов купил бы - 10 уже жалко . кек))

    • @alishevN
      @alishevN  7 ปีที่แล้ว +3

      На уроке 47 рассказывается про try-with-resources.

    • @summerray888
      @summerray888 6 ปีที่แล้ว +22

      Странно, что вам жалко, что автор занялся коммерцией. Уроки шикарны, подобный труд достоин вознаграждения. Автор не обязан заниматься благотворительностью, к тому же очень много уроков выложено в бесплатном доступе, за что ему огромная благодарность. 10 баксов не такие и большие деньги, тут скорее вопрос приоритетов, куда потратить бабло. Я платный курс приобрела и не разочаровалась.

    • @alekseyfrozis937
      @alekseyfrozis937 5 ปีที่แล้ว +1

      @@summerray888 аналогично!

  • @ОстапЛьвовский
    @ОстапЛьвовский 6 ปีที่แล้ว

    написано все точно знак в знак и ни чего не записывается, файл пустой

  • @Bot-yy3cm
    @Bot-yy3cm 2 ปีที่แล้ว

    насколько помню try сам закрывает поток

  • @einoharanen6828
    @einoharanen6828 5 ปีที่แล้ว

    Не пойму, зачем тут нужны геттеры?

    • @arvikv
      @arvikv 4 ปีที่แล้ว

      Инкапсуляция? Поля приватные, доступ с другого класса не получить?

  • @getteg6468
    @getteg6468 4 ปีที่แล้ว

    оказывается сериализация не сложно совсем

  • @Имяифамилия-з4ю
    @Имяифамилия-з4ю 7 หลายเดือนก่อน

    ЗаJava

  • @ВладиславШестернин-б9с
    @ВладиславШестернин-б9с 5 ปีที่แล้ว

    👍🏻

  • @Youtooobo
    @Youtooobo 2 ปีที่แล้ว

    Еще бы в видео было показано содержимое файла .bin , было бы вообщше супер. Просто в текстовом редакторое открыл бы файл после записи.

  • @ПавелК-ю9э
    @ПавелК-ю9э 2 ปีที่แล้ว +1

    Кровь из глаз, смотреть в 2022 году, используя уже Try с ресурсами, вместо этой мути с миллионами строчек кода.

    • @yuritian8830
      @yuritian8830 ปีที่แล้ว

      Есть рекомендации, статьи, видео, уроки, книги...?

  • @haydaralihaydarov5397
    @haydaralihaydarov5397 3 ปีที่แล้ว

    a zachem nam nujno getteri?? pojalusta otvette!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  • @АндрійГалабіцький-и1н
    @АндрійГалабіцький-и1н 7 ปีที่แล้ว +1

    ♥️

  • @uliykazakov
    @uliykazakov 5 ปีที่แล้ว

    Майк и Боб... Это что, отсылка к Твин Пиксу??

  • @minepolz320
    @minepolz320 7 ปีที่แล้ว +1

    уряяя

  • @volodymyrchornyi9389
    @volodymyrchornyi9389 7 ปีที่แล้ว

    package FileSave.SaveObject;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectOutputStream;
    public class SaveObject {
    public static void main(String[] args) {
    Person person1 = new Person(1, "Mike");
    Person person2 = new Person(2, "Bob");
    try {
    FileOutputStream fos = new FileOutputStream("beople.bin");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(person1);
    oos.writeObject(person2);
    oos.close();
    } catch (IOException e) {
    System.out.println("wrong file or some else");
    }
    }
    }
    У меня вот так... естественно в файл ничего не записалось, эксепшн не отработал что-ли... Не пойму. Уроки - доступнее материала для понимания не находил!!!

    • @ВербицкийВиктор
      @ВербицкийВиктор 7 ปีที่แล้ว +1

      Обратите внимание где вы создаете сам файл для хранения данных, в папке src или в корневом каталоге?

    • @СергейБелоцерковский-п5н
      @СергейБелоцерковский-п5н 6 ปีที่แล้ว +2

      beople.bin))

    • @АлексейТимошенко-л6и
      @АлексейТимошенко-л6и 2 ปีที่แล้ว +1

      Наверное, написал имя файла с ошибкой - beople.bin, java его создала и записала данные в него. Ты же смотришь свой файл people.bin и, естественно, ничего в нём не видишь.

  • @fernandaeschallots2485
    @fernandaeschallots2485 6 หลายเดือนก่อน

    Thanks a lot!