1.请描述Android SDK支持哪些文件存储技术?

  • 使用SharePreferences保存key-value类型的数据
  • 流文件存储(openFileOutput+openFileInput或FileInputStream+FileOutputStream)
  • XML半结构化存储
  • Json保存数组核对象
  • 数据库保存结构化数据

2.如何使用SharePreference?

  • 获取对象:Context.getSharedPreferences获取,如getSharedPreferences("名字",Activity.MODE_PRIVATE),这个模式是只有当前程序可以读写
  • 获取写的对象:SharePreferences.Editor=mySharePreferences.edit();
  • 写数据:editor.putString("key","value");
  • 提交:editor.commit();

3.用SharedPreferences保存的数据文件存放在哪个目录中?

  • 保存在手机内存中,文件存储路径为:/data/data/packagename/shared_prefs
  • 可以用文件流来读取

4.如何在sharedPreferences文件中存取可序列化的对象?

  • 基础类一定要实现Serializable接口,这个表示该类是可序列化的。
  • 然后需要将可序列化类编码成base64,这里需要和ByteArrayOutputStream+ObjectOutputStream来配合。

5.如何通过PreferenceActivity类实现一个设置界面?

  • 最外层标签为:<PreferenceScreen>
  • <PreferenceCategory>标签表示一个设置分类
  • <CheckBoxPreference>标签表示复选框
  • <EditTextPreference>标签对应编辑框
  • <ListPreference>对应ListView
  • 使用addPreferencesFromResource(R.xml.preference_setting)来装载文件
  • 在onCreateView中设置<preference>标签的item点击事件

6.Android SDK支持哪些获取文件输入输出流的方式?

  • 法1:直接创建FileInputStream+FileOutputStream
  • 法2:使用Context.openFileOutput+Context.openFileInput

7.请写出解析JSON格式文档的JAVA代码?

  • 有一个json字符串:String json="...";
  • 如果是数组就封装成数组:JSONArray jsonArray=new JSONArray(json);
  • 如果是对象就封装成对象:JSONObject jsonObject=new JSONObject(字符串);
  • 将对象转换成string: String.valueOf(jsonObject.get("字符串"));

Android面试收集录 文件存储的更多相关文章

  1. Android面试收集录 Android系统的资源+其他

    1.Android应用程序的资源是如何存储的,如何使用? res文件夹或者assets文件夹 res目录中的资源在R类中生成一个int变量,然后再布局文件中可以直接使用,在代码中,要getResour ...

  2. Android面试收集录 Android组件

    1.请说出Android SDK支持哪些方式显示富文本信息? 使用TextView组件可以显示富文本信息,如果要实现图文混排,需实现ImageGetter接口 使用WebView组件显示HTML页面 ...

  3. Android面试收集录13 Android虚拟机及编译过程

    一.什么是Dalvik虚拟机 Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的 ...

  4. Android面试收集录4 Fragment详解

    1.什么是Fragment? 你可以简单的理解为,Fragment是显示在Activity中的Activity. 它可以显示在Activity中,然后它也可以显示出一些内容. 因为它拥有自己的生命周期 ...

  5. Android面试收集录3 ContentProvider详解

    1.ContentProvider简单介绍 1.1.定义 ContentProvider,即内容提供者属于Android的四大组件之一. 1.2.作用 进程间进行数据交互&共享,即跨进程通信. ...

  6. Android面试收集录1 Activity+Service

    1.Activity的生命周期 1.1.首先查看一下Activity生命周期经典图片. 在正常情况下,一个Activity从启动到结束会以如下顺序经历整个生命周期: onCreate()->on ...

  7. Android面试收集录 2D绘图与动画技术

    1.如何在Android应用程序的窗口上绘制图形? 继承View 实现View中的onDraw()方法 2.如何绘制圆,空心椭圆? canvas.drawArc或canvas.drawCircle方法 ...

  8. Android面试收集录 电话、短信和联系人、多媒体技术

    1.请写出调用系统拨号界面? Intent intent=new Intent(Intent.ACTION_DIAL,Uri.pase("tel:12345678910")); s ...

  9. Android面试收集录 网络与加密

    1.创建Socket对象需要至少指定哪些信息? IP(或域名)和端口号 Socket socket=new Socket("www.baidu.com",80); 2.如何使用So ...

随机推荐

  1. June 14th 2017 Week 24th Wednesday

    Love looks not with the eyes, but with the mind. 爱,不在眼里,而在心中. Staring in her eyes and you will find ...

  2. 使用describe命令进行Kubernetes pod错误排查

    我有一个pod名叫another,用kubectl create创建后发现过了29分钟,状态还是处于ContainerCreating阶段. 使用kubectl describe命令检查: 从错误消息 ...

  3. 关于c++对文件读写的封装

    namespace { UINT_T GetWriteSizeForNoBuf(UINT_T fsize) { UINT_T write_buf_size = ; == ) { write_buf_s ...

  4. MySQL:数据库入门篇2

    #移除主键时需要先解除递增,才能解除主键 alter table info modify id int null , drop PRIMARY key 一.用户权限 1.创建用户 create use ...

  5. Codeforces Round #443 (Div. 2)

    C. Short Program Petya learned a new programming language CALPAS. A program in this language always ...

  6. POJ 1830 开关问题 【01矩阵 高斯消元】

    任意门:http://poj.org/problem?id=1830 开关问题 Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 1 ...

  7. 【luogu P3373 线段树2】 模板

    题目链接:https://www.luogu.org/problemnew/show/P3373 lazy标记两个,先乘后加 #include <iostream> #include &l ...

  8. Android学习笔记_71_Android 多个项目之间如何引用 项目怎样打jar包

    一.将整个项目作为资源文件 1.需要将被应用的项目设置为库项目. 2.将该项目的配置文件中的四大组件清空,例如下面代码: <?xml version="1.0" encodi ...

  9. Ueditor上传图片到本地改造到上传图片到七牛云存储

    作为新手说多了都是泪啊!我特别想记录一下作为菜鸟时的坑.看看以后是否会看着笑出来. 为什么要改到云存储上就不说了.好处多多. 视频教程上使用的又拍云同时也提到了七牛云.下来我自己也查了下.又拍云是试用 ...

  10. centos6: mysql+nginx+php

    安装配置: mysql: http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/ yum repolist enabled | grep mys ...