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. 恢复scout工具栏

    删除scout安装路径 C:\PROGRAM FILES\SIEMENS\STEP7\U7UMC\DATA\WRKBNCH 下的三个文件: acppersi.dat uespersi.dat uesu ...

  2. oracle 表 视图 存储过程 序列 job

    table 表 --delete table drop table Test1; -- Create table create table TEST1 (   ID     NUMBER,   T_N ...

  3. 使用SAPGUI画图

    国内80后上的编程课应该都学过Logo这门编程语言: Logo语言是一门专门设计用来进行编程教学的语言,于1967年由Wally Feurzeig, Seymour Papert和Cynthia So ...

  4. Jmeter入门11 使用Simple Controller组织接口测试用例

    接口测试实践中,可以使用Simple Controller来组织测试用例. 官网上说该控制器的主要用途用来组织采样器和其他的逻辑控制器等. 以下为一个接口测试项目结构示例: 1 测试计划 >添加 ...

  5. Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired,

    Did not receive a reply. Possible causes include: the remote application did not send a reply, the m ...

  6. redux中间件和redux-thunk实现原理

    redux-thunk这个中间件可以使我们把这样的异步请求或者说复杂的逻辑可以放到action里面去处理,redux-thunk使redux的一个中间件,为什么叫做中间件 我们说中间件,那么肯定是谁和 ...

  7. Swift学习——格式控制符和元组流程控制(二)

    Swift中的格式控制符和元祖 (1)首先介绍一下元祖,元祖是关系型数据库中  比如学生表中的姓名,年龄,电话等 定义例如以下 var studentinfo = ("jhon", ...

  8. 2018.12.19 Struts2 框架总复习

    总结Struts2 框架 struts2技术的优势 项目开源,使用及拓展方便 提供Exception处理机制 Result方式的页面导航,通过Result标签很方便的实现重定向和页面跳转 通过简单.集 ...

  9. 三、详述 IntelliJ IDEA 的使用界面

    是否还记得在博文“IntelliJ IDEA 安装目录的核心文件讲解”中,这张充满神秘色彩的图片呢?进入她,让咱们一起感受她的魅力吧! 如上图所示,打开 IntelliJ IDEA 后,首先迎接咱们的 ...

  10. sql中 decode() 的用法

    sql中 decode() 的用法 SELECT ID,DECODE(inParam,'Param','value1' ,'value2') name FROM yytj2018 如果 inParam ...