千家信息网

怎么进行android中数据存储分析

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,这篇文章将为大家详细讲解有关怎么进行android中数据存储分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Android中的数据存储主要有以下几种
千家信息网最后更新 2024年11月14日怎么进行android中数据存储分析

这篇文章将为大家详细讲解有关怎么进行android中数据存储分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Android中的数据存储主要有以下几种方式:

1、使用SharedPreferences:该存储方式主要用于应用程序有少量的数据需要保存,而且这些数据的格式很简单。

2、File存储:可以让我们轻松访问手机存储器上的文件(手机内存卡或者用户的SD卡)

3、SQLite数据库:Android系统集成了一个轻量级的数据库

4、网络:将数据保存在网络平台上进行存储

下面我将带领大家使用它们:

1、使用SharedPreferences,我们需要获取到SharedPreferences和SharedPreferences.Editor这两个重要的对象,然后便可以添加或者取出相应的数据:

1)添加数据:

  //获取SharedPreferences实例,表示该SharedPreferences只能被本应用程序进行读写                     //MODE_WORLD_READABLE:只能被其他程序读,但不能写                   //MODE_WORLD_WRITEABLE:能被其他应用程序进行读和写                          SharedPreferences preferences=getSharedPreferences("myFile", MODE_PRIVATE);                       SharedPreferences.Editor editor=preferences.edit();//获取SharedPreferences.Editor对象                                SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");                            //通过editor向SharedPreferences存入指定key数据                                 editor.putString("time", sdf.format(new Date()));                                 editor.putInt("random", (int)(Math.random()*100));                             editor.commit();//提交所存入的数据

2)取出相应的数据:

                     SharedPreferences preferences=getSharedPreferences("myFile", MODE_PRIVATE);                                   //获取指定key的值,如果不存在返回默认值                                    String time=preferences.getString("time", null);                                      int random=preferences.getInt("random", 0);                                   String result=time==null?"你还未写入数据":"写入时间为:"+time+"\n上次生成的随机数为:"+random;                                Toast.makeText(SharedPreferencesTestActivity.this, result, 5000).show();

以上代码都有注释,我相信大家很容易就能理解!

2、File写入和读出

android中我们可以在我们的手机自带的内存卡中或者用户插入的SD卡中进行文件的写入和读出

实质上就是建立一个输入输出流,然后在里面读写数据,就是java里面的IO操作!

1)将数据保存在我们手机内置的存储空间

      /**    * 该方法是将数据保存在我们手机内置的存储空间,主要是调用Context.openFileOutput(fileName,MODE)方法就可以得到相应的输出流     * fileName:不能使用我们常用的分隔符("/"),例如:aaa/test.txt,我们只能使用test.txt       * 所保存的文件放在/data/data/包名/files/目录下,例如:/data/data/com.xin.activity/files/test.txt     * MODE:有以下几种:       * context.MODE_PRIVATE:当前应用程序下的私有数据,其他应用程序不能够进行读或者写访问,否则会出现permission denni错误,         * 并且如果文件已经存在,重新写入的文件会覆盖掉以前文件当中的数据;          * context.MODE_APPEND:当前应用程序下的私有数据,其他应用程序不能够进行读或者写访问,否则会出现permission denni错误,          * 并且如果文件已经存在,重新写入的数据会追加到源文件的数据后面;           * context.MODE_WORLD_READABLE:其他应用程序可以对该文件进行读的操作,不能进行写的操作,否则会出现permission denni错误;     * context.MODE_WORLD_WRITEABLE:其他应用程序可以对该文件进行写的操作,不能进行读的操作,否则会出现permission denni错误;    * 如果要使其他应用程序既可以对文件进行读取,又可以对文件进行写入,可以使用      * context.MODE_WORLD_READABLE+context.MODE_WORLD_WRITEABLE方式传入参数    * 保存后的文件中存在中文是不会乱码的         * 我们可以通过window-->android-->file explorer查看系统中的文件         * @param fileName      * @param fileContent           * @throws Exception    */      public void save(String fileName,String fileContent)throws Exception{                FileOutputStream fos=context.openFileOutput(fileName, context.MODE_WORLD_WRITEABLE);                fos.write(fileContent.getBytes());    }

2)手机内置的存储空间中读取数据

        /**    * 从手机内置的存储空间中读取数据,主要是调用context.openFileInput(fileName)方法,传入参数文件名称           * @return           */      public String read(String fileName)throws Exception{              FileInputStream fis=context.openFileInput(fileName);             byte[] buffer=new byte[1024];               int len=0;               //保存在内存中,也可以使用下面的方式进行输出               ByteArrayOutputStream baos=new ByteArrayOutputStream();             //StringBuilder sb=new StringBuilder();             while((len=fis.read(buffer))!=-1){                    baos.write(buffer, 0, len);                         //sb.append(new String(buffer,0,len));           }             byte[] b=baos.toByteArray();             return new String(b);               //return sb.toString();          }

3)保存文件到手机的外部存储设备SD卡中

   /**    * 保存文件到手机的外部存储设备SD卡中        * 访问硬件设备,我们需要在AndroidMainifest.xml中配置相应的访问SD卡的权限    *                              注意由于android系统的版本不同,所以外部存储设备的根目录可能会不一样,例如2.1版/sdcard/,而2.2版本的/mnt/sdcard/           所以我们不能将其写死,使用Environment.getExternalStorageDirectory()即可得到不同版本的根目录,所以用这种方式           如果文件已经存在,内容会覆盖          * @param fileName      * @param fileContent           * @throws Exception    */      public void saveToSDCard(String fileName,String fileContent)throws Exception{                //Environment.getExternalStorageDirectory()--->/sdcard             File file=new File(Environment.getExternalStorageDirectory(),fileName);             FileOutputStream fos=new FileOutputStream(file);            fos.write(fileContent.getBytes());    }

4)将SD卡文件中的内容读取出来

       /**    * 将SD卡文件中的内容读取出来    * @param fileName      * @return           * @throws Exception    */      public String readSDCard(String fileName)throws Exception{                File file=new File(Environment.getExternalStorageDirectory()+File.separator+fileName);              FileInputStream fis=new FileInputStream(file);              byte[] buffer=new byte[1024];               int len=0;               ByteArrayOutputStream baos=new ByteArrayOutputStream();             while((len=fis.read(buffer))!=-1){                    baos.write(buffer, 0, len);                 }             byte[] b=baos.toByteArray();             return new String(b);       }


以上代码都有注释,我相信大家很容易理解!将文件从手机自带的内存卡中读写主要是用到android中提供的当前上下文Context提供的两个类openFileInput和openFileOutput获得相应的字节输入流和字节输出流,而操作SD卡上面的文件则主要是获得SD卡中文件所在的路径,我们通过Environment.getExternalStorageDirectory()来获得其根目录,然后对里面的文件进行相应的IO流操作即可,文件存储是不是so easy啦!

关于怎么进行android中数据存储分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

数据 文件 存储 程序 应用程序 手机 应用 内容 方式 内存 空间 设备 错误 输出 内存卡 存储设备 方法 根目录 版本 系统 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 关闭根服务器后中国网络会怎么样 网络安全法执法情况检查 小学生网络安全分析 数据库查询哪种方式更好 游戏连接不上服务器 软件开发运营做什么 科技股和互联网 动态gps轨迹记录软件开发 学软件开发在北京工作好找吗 小红书软件开发者电话 简述数据库中数据独立性 中兴zxf20 r520服务器 怎么做好网络安全工作总结 数据库模糊查询类似于in的 学习网络安全技术的基本方法 switch服务器能换吗 中文数据库北部湾大学图书馆 禁止下载软件开发 数据库中的元素单位 软件开发收费合同模板 浪潮服务器可以用pe安装系统 软件开发的工作量占软件开发 梦境碎片魔兽数据库 中国科技互联网排名2015 网络安全与管理是哪个专业 网络安全军民融合现状 二手电脑服务器怎么样 适合宝妈学习的网络技术 计算机通信与网络技术选择题 广州项目软件开发服务费
0