В чем разница между сериализацией объекта и Filewriter?

Я просматриваю Head first Java и достиг темы сериализации. В ней говорится, что если ваши данные будут использоваться только Java, программа, которая их сгенерировала, затем используйте сериализацию, иначе если ваши данные будут использоваться другими программами, напишите в обычный текстовый файл.

Но я читал, что сериализация объекта не зависит от JVM. Кроме того, когда мы сериализуем объект, его данные сохраняются, но когда мы используем FileWriter и fileReader, то то, что мы печатаем, сохраняется в файле, в отличие от сериализации, верно?

Также, когда используется буферизованный ридер, как мы используем его в cse с файловым редактором.


person djlandd    schedule 21.09.2015    source источник
comment
3 разных (и, честно говоря, не связанных) вопроса. Попробуйте погуглить каждый отдельно :)   -  person TheLostMind    schedule 21.09.2015
comment
Сериализация объектов создает файлы, которые могут быть десериализованы только программой или, по крайней мере, той, которая имеет ту же зависимость, что и сериализованные объекты. Записывая в обычный текст, xml или json, вы можете считывать данные чем угодно. Вы можете импортировать его в БД или даже сделать его понятным для человека.   -  person Fildor    schedule 21.09.2015
comment
Я сделал, но я был сбит с толку, поэтому я спросил здесь, все равно спасибо за всю вашу помощь.   -  person djlandd    schedule 21.09.2015


Ответы (1)


Сериализация — это одна (из различных) концепций, описывающая, как добиться постоянства ваших объектов Java. В основном этот термин относится к протоколу, который используется для преобразования любого объекта в поток битов и байтов.

То, что вы делаете с этим потоком битов и байтов, во многом зависит... от well; что вы хотите с этим сделать.

С другой стороны, FileWriter; - это совершенно не связанная «концепция» - в основном это часть инфраструктуры ввода-вывода, которую Java предлагает вам для решения таких задач, как «чтение или запись чего-либо из/в файловую систему».

Другими словами: вы можете использовать сериализацию для преобразования объектов Java в биты и байты. Вы можете использовать FileWriter; или один из его многочисленных конкретных подклассов, чтобы получить эти биты и байты... из памяти в файл, который живет на вашем диске.

Что касается других частей вашего вопроса, я искренне рекомендую вам самостоятельно изучить множество онлайн-ресурсов. Целью этого сайта является помощь в решении проблем программирования; не для того, чтобы учить тому, что вы можете найти в миллионах книг или на веб-сайтах.

Чтобы ответить на ваши комментарии: если вы имеете дело с объектом Java, вы можете вызывать его методы. Если вы имеете дело с необработанными битами и байтами ... в основном вы можете только записать их куда-нибудь; или прочитать их откуда-то. И вы можете взять байты и воссоздать из них объект Java. На котором вы можете снова вызывать методы. Это похоже на перевод ваших денег на ваш банковский счет: когда вы «сохраняете» свои деньги, просто информация о числах где-то хранится (но никто не хранит ваши монеты и купюры в ваших аккаунт). Вы можете вернуться позже, информация просматривается; и вы получаете новые монеты при выводе средств. Может это поможет..

person GhostCat    schedule 21.09.2015
comment
Я только начал с java, я гуглил эти три в отдельных поисках, и это все еще сбивало меня с толку, я просто хотел спросить, почему мы используем буферизованный читатель, когда это не нужно, но я погуглил и получил ответы, спасибо за ваш ответ - person djlandd; 21.09.2015
comment
Причина, по которой я запутался, заключается в том, что я думаю, я не понимаю, что означают объекты в байтах, например, что хорошего происходит, когда они попадают в байты, и чем мы ограничены, когда они не в байтах. Опять же, я всего лишь новичок, это может показаться глупым, но, пожалуйста, помогите. - person djlandd; 21.09.2015