{"id":2352,"date":"2014-10-07T16:35:27","date_gmt":"2014-10-07T12:35:27","guid":{"rendered":"https:\/\/blog.alwawee.ru\/?p=2352"},"modified":"2014-10-07T16:39:03","modified_gmt":"2014-10-07T12:39:03","slug":"serialize-object-save-file-read-file-android","status":"publish","type":"post","link":"https:\/\/blog.alwawee.ru\/?p=2352","title":{"rendered":"Serialize an object, save it to a file and read it from a file in Android"},"content":{"rendered":"<p>Android interface <strong>Serializable<\/strong> is not sufficient to save your objects to the file, it only creates streams.<\/p>\n<p>This is a complete code with error handling and handling closes of streams. Add it to your class that you want to be able to <strong>serialize<\/strong> and <strong>deserialize<\/strong>. <\/p>\n<p>In my case the class name is <strong>CreateResumeForm<\/strong>. You should change it to your own class name. <\/p>\n<pre>\r\n\/\/ Constant with a file name\r\npublic static String fileName = \"createResumeForm.ser\";\r\n\r\n\/\/ Serializes an object and saves it to a file\r\npublic void saveToFile(Context context) {\r\n    try {\r\n        FileOutputStream fileOutputStream = context.openFileOutput(fileName, Context.MODE_PRIVATE);\r\n        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);\r\n        objectOutputStream.writeObject(this);\r\n        objectOutputStream.close();\r\n        fileOutputStream.close();\r\n    } catch (IOException e) {\r\n        e.printStackTrace();\r\n    }\r\n}\r\n\r\n\r\n\/\/ Creates an object by reading it from a file\r\npublic static CreateResumeForm readFromFile(Context context) {\r\n    CreateResumeForm createResumeForm = null;\r\n    try {\r\n        FileInputStream fileInputStream = context.openFileInput(fileName);\r\n        ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);\r\n        createResumeForm = (CreateResumeForm) objectInputStream.readObject();\r\n        objectInputStream.close();\r\n        fileInputStream.close();\r\n    } catch (IOException e) {\r\n        e.printStackTrace();\r\n    }\r\n    catch (ClassNotFoundException e) {\r\n        e.printStackTrace();\r\n    }\r\n    return createResumeForm;\r\n}\r\n<\/pre>\n<p>Use it like this in your <strong>Activity<\/strong>:<\/p>\n<pre>\r\nform = CreateResumeForm.readFromFile(this);\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Android interface Serializable is not sufficient to save your objects to the file, it only creates streams. This is a complete code with error handling and handling closes of streams. Add it to your class that you want to be able to serialize and deserialize. In my case the class name is CreateResumeForm. You should [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":[188,141,139,140],"class_list":["post-2352","post","type-post","status-publish","format-standard","hentry","category-android","tag-android","tag-file","tag-serializable","tag-serialization"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Serialize an object, save it to a file and read it from a file in Android - Denis Kutlubaev<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.alwawee.ru\/?p=2352\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Serialize an object, save it to a file and read it from a file in Android - Denis Kutlubaev\" \/>\n<meta property=\"og:description\" content=\"Android interface Serializable is not sufficient to save your objects to the file, it only creates streams. This is a complete code with error handling and handling closes of streams. Add it to your class that you want to be able to serialize and deserialize. In my case the class name is CreateResumeForm. You should [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.alwawee.ru\/?p=2352\" \/>\n<meta property=\"og:site_name\" content=\"Denis Kutlubaev\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/alwaweemobile\" \/>\n<meta property=\"article:published_time\" content=\"2014-10-07T12:35:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-10-07T12:39:03+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/blog.alwawee.com\/?attachment_id=1982\" \/>\n<meta name=\"author\" content=\"Denis Kutlubaev\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Denis Kutlubaev\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2352#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2352\"},\"author\":{\"name\":\"Denis Kutlubaev\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/#\\\/schema\\\/person\\\/58f1f1f57155b48afab83ba53b3e26a7\"},\"headline\":\"Serialize an object, save it to a file and read it from a file in Android\",\"datePublished\":\"2014-10-07T12:35:27+00:00\",\"dateModified\":\"2014-10-07T12:39:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2352\"},\"wordCount\":85,\"commentCount\":0,\"keywords\":[\"Android\",\"file\",\"Serializable\",\"serialization\"],\"articleSection\":[\"Android\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2352#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2352\",\"url\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2352\",\"name\":\"Serialize an object, save it to a file and read it from a file in Android - Denis Kutlubaev\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/#website\"},\"datePublished\":\"2014-10-07T12:35:27+00:00\",\"dateModified\":\"2014-10-07T12:39:03+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/#\\\/schema\\\/person\\\/58f1f1f57155b48afab83ba53b3e26a7\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2352#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2352\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2352#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blog.alwawee.ru\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Serialize an object, save it to a file and read it from a file in Android\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/#website\",\"url\":\"https:\\\/\\\/blog.alwawee.ru\\\/\",\"name\":\"Denis Kutlubaev\",\"description\":\"iOS Development\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.alwawee.ru\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/#\\\/schema\\\/person\\\/58f1f1f57155b48afab83ba53b3e26a7\",\"name\":\"Denis Kutlubaev\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg\",\"caption\":\"Denis Kutlubaev\"},\"description\":\"iOS Developer, creator of Tornado Browser and many other popular apps\",\"sameAs\":[\"http:\\\/\\\/dennis.alwawee.com\"],\"url\":\"https:\\\/\\\/blog.alwawee.ru\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Serialize an object, save it to a file and read it from a file in Android - Denis Kutlubaev","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.alwawee.ru\/?p=2352","og_locale":"en_US","og_type":"article","og_title":"Serialize an object, save it to a file and read it from a file in Android - Denis Kutlubaev","og_description":"Android interface Serializable is not sufficient to save your objects to the file, it only creates streams. This is a complete code with error handling and handling closes of streams. Add it to your class that you want to be able to serialize and deserialize. In my case the class name is CreateResumeForm. You should [&hellip;]","og_url":"https:\/\/blog.alwawee.ru\/?p=2352","og_site_name":"Denis Kutlubaev","article_publisher":"https:\/\/www.facebook.com\/alwaweemobile","article_published_time":"2014-10-07T12:35:27+00:00","article_modified_time":"2014-10-07T12:39:03+00:00","og_image":[{"url":"http:\/\/blog.alwawee.com\/?attachment_id=1982","type":"","width":"","height":""}],"author":"Denis Kutlubaev","twitter_misc":{"Written by":"Denis Kutlubaev","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.alwawee.ru\/?p=2352#article","isPartOf":{"@id":"https:\/\/blog.alwawee.ru\/?p=2352"},"author":{"name":"Denis Kutlubaev","@id":"https:\/\/blog.alwawee.ru\/#\/schema\/person\/58f1f1f57155b48afab83ba53b3e26a7"},"headline":"Serialize an object, save it to a file and read it from a file in Android","datePublished":"2014-10-07T12:35:27+00:00","dateModified":"2014-10-07T12:39:03+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.alwawee.ru\/?p=2352"},"wordCount":85,"commentCount":0,"keywords":["Android","file","Serializable","serialization"],"articleSection":["Android"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.alwawee.ru\/?p=2352#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.alwawee.ru\/?p=2352","url":"https:\/\/blog.alwawee.ru\/?p=2352","name":"Serialize an object, save it to a file and read it from a file in Android - Denis Kutlubaev","isPartOf":{"@id":"https:\/\/blog.alwawee.ru\/#website"},"datePublished":"2014-10-07T12:35:27+00:00","dateModified":"2014-10-07T12:39:03+00:00","author":{"@id":"https:\/\/blog.alwawee.ru\/#\/schema\/person\/58f1f1f57155b48afab83ba53b3e26a7"},"breadcrumb":{"@id":"https:\/\/blog.alwawee.ru\/?p=2352#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.alwawee.ru\/?p=2352"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.alwawee.ru\/?p=2352#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.alwawee.ru\/"},{"@type":"ListItem","position":2,"name":"Serialize an object, save it to a file and read it from a file in Android"}]},{"@type":"WebSite","@id":"https:\/\/blog.alwawee.ru\/#website","url":"https:\/\/blog.alwawee.ru\/","name":"Denis Kutlubaev","description":"iOS Development","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.alwawee.ru\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.alwawee.ru\/#\/schema\/person\/58f1f1f57155b48afab83ba53b3e26a7","name":"Denis Kutlubaev","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg","caption":"Denis Kutlubaev"},"description":"iOS Developer, creator of Tornado Browser and many other popular apps","sameAs":["http:\/\/dennis.alwawee.com"],"url":"https:\/\/blog.alwawee.ru\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=\/wp\/v2\/posts\/2352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2352"}],"version-history":[{"count":0,"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=\/wp\/v2\/posts\/2352\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}