android 对象输出到文件
在我们写app时,经常要访问服务器去拉取服务器的数据,然后做本地缓存,这样只要服务器端的数据没有更新,我们的APP就没有必要去每次都发送请求,只要从缓存的本地文件中读取出来,正确的做解析即可。
在公司最近的项目中,主要是要缓存一些目录数据,因为这些数据是不怎么变化的,不必每次都去发请求,有了这个需求后,我就开始准备缓存服务器返回来的Json数据,可后来注意到程序中接收到服务器的响应后已经将Json解析为了对象,这种情况下我就不可以将Json存到文件中去了,只能是将对象存到文件中去,于是就研究了一下Java如何将对象写入到文件中去,发现写对象到文件中与写字符串到文件基本上是一样的。
下面是我写的一个存储对象和读取对象的demo:
package com.example.objectwriterdemo;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;public class MainActivity extends Activity
{private Student student;private Student stu1;private File sdCardDir;private File sdFile;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initData();readyToWriter();readyToReader();}private void initData(){student = new Student();student.name = "rzq";student.sex = "male";}private void readyToWriter(){if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){sdCardDir = Environment.getExternalStorageDirectory();sdFile = new File(sdCardDir, "student.out");try{FileOutputStream fos = new FileOutputStream(sdFile);ObjectOutputStream oos = new ObjectOutputStream(fos);oos.writeObject(student);fos.close();}catch (Exception e){e.printStackTrace();}}}private void readyToReader(){if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){try{FileInputStream fis = new FileInputStream(sdFile);ObjectInputStream ois = new ObjectInputStream(fis);stu1 = (Student) ois.readObject();fis.close();}catch (Exception e){e.printStackTrace();}}Log.e("=========", stu1.name);}
}
解释一下: FileInputStream,FileOutputStream是文件输入,输出流,是字节流,同时也是结点流,只有结点流是可以直接指向到具体的文件的,而ObjectInputStream,ObjectOutputStream是对象流,同时也是处理流,处理流是不能直接指向到最络要输入输出的文件的,它们只能指向到结点流,所以我们要先创建好结点流,然后将对象流指向到这些结点流上,就可能通过处理流去处理对象的输入与输出了。
android 对象输出到文件相关推荐
- Android捕捉崩溃日志并输出日志文件
Android捕捉崩溃日志并输出日志文件 当程序与运行时发生崩溃,可以捕捉到当前崩溃的日志信息并写入文件保存到指定的目录下.这里还做了最大文件数量限制,超过数量即删除旧日志文件. import jav ...
- Android日志输出到控制台、文件(XLog开源日志工具)
Android日志输出到控制台.文件(XLog开源日志工具) Android项目开发中,需要将Log同时输出到控制台 与 文件,并要求将日志文件压缩并上传到远程服务端(便于分析App使用过程中用户反馈 ...
- 将json对象输出为xml文件
一.pom中引入jdom依赖 <dependency><groupId>org.jdom</groupId><artifactId>jdom</a ...
- Android数据存储——2.文件存储_C_DOM解析XML文档
今天学习Android数据存储--文件存储_DOM解析XML文档 位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效 ...
- android文件存储数组,Android面试简录——文件存储
* SharedPreferences 请描述Android SDK支持哪些文件存储技术? 1.SharedPreferences保存key-value类型的数据 2.流文件存储(openFileOu ...
- android对象序列化,Android序列化总结
前言 公园里,一位仙风鹤骨的老者在打太极,一招一式都仙气十足,一个年轻人走过去:"大爷,太极这玩意儿花拳绣腿,你练它干啥?"老者淡淡一笑:"年轻人,你还没有领悟到太极的真 ...
- python输出json到文件_Python:JSon输出到文件(Python : JSon Output to a file)
Python:JSon输出到文件(Python : JSon Output to a file) 我从我的Python脚本输出一个JSon格式,我想把JSon写入一个文件. 我用 df_json.to ...
- C++随时输出到文件-outfile
这里主要是讨论fstream的内容: #include <fstream> ofstream //文件写操作 内存写入存储设备 ifstream //文件 ...
- python文件输出-Python 文件和输入输出小结
1.打开和关闭文件(open(),file(),close()) 有两种内建函数可以获取文件对象:open和file.他们的用法完全一样.下面只以open()为例子讲解.获取一个文件对象(打开文件)的 ...
- android studio .so混淆配置,Android Studio 下混淆 文件配置 有关问题 初探(一)
Android Studio 下混淆 文件配置 问题 初探(一) 1.参考资料 https://stuff.mit.edu/afs/sipb/project/android/sdk/android-s ...
最新文章
- python国防_Python+Excel数据分析实战:军事体能考核成绩评定(二)基本框架和年龄计算...
- 2020年美团春招 技术综合试卷第一题
- java语言基础与go语言基础,数据类型区别
- Ubuntu 搭建 GitLab 笔记 ***
- Linux下查看物理CPU、逻辑CPU和CPU核数
- SpringBoot整合(Elasticserch)
- 置顶,博客中所有源码 github
- tsql_TSQL的历史
- 今天心情不太开心?有点心烦
- Spring Boot 项目打成 .exe 程序,实战来了!
- 2019年PAT甲级冬季考试真题及参考答案
- 三维空间点到线段的距离
- 计算机上网络怎么连接,手机怎么连接电脑上网
- 长沙银行“三重奏”:“生态银行”的新玩法
- 给基于HEXO的博客添加gitter在线交流
- 云手机虚拟机服务器配置,云手机虚拟机服务器
- 【Vue】高级系列(五)Vue模块化实战-demo2-任务清单todoList
- 小麦苗博客用到的图片
- (电赛电源方向)怎么样从零开始准备全国大学生电子设计竞赛
- 在腾讯做了4年软件测试,来面试要求35k,让我见识到了真正的软件测试天花板...
热门文章
- Javascript特效:简单日历
- 论文笔记_S2D.39_2015-ICCV-条件随机场作为递归神经网络(CRF-RNN)
- 算法笔记_面试题_数组/链表/跳表/各种数据结构复杂度对比
- leetcode之回文链表
- PCL点云参数估计算法之RANSAC和LMEDS
- 04.如何升级扩展以支持Visual Studio 2019
- wso2 ei 6.4.0安装笔记
- 软件工程-东北师大站-第六次作业PSP
- Linux之系统信息操作20170330
- Junit学习笔记(二): 源码分析(2)-命令和组合模式