• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android系统的五种数据存储形式(一),android数据存储

Android系统的五种数据存储形式(一),android数据存储

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android系统升级,android系统,android系统恢复3e,android系统架构,android系统开发等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android系统的五种数据存储形式(一),android数据存储


      Android系统有五种数据存储形式,分别是文件存储、SP存储、数据库存储、contentprovider 内容提供者、网络存储。其中,前四个是本地存储。存储的类型包括简单文本、窗口状态存储、音频视频数据、XML注册文件的各种数据。各种存储形式的特点不尽相同,因此对于不同的数据类型有着固定的存储形式,本文为演示方便给出的案例基本相同,都是是采用账号登录来演示数据存储,保存账号和密码信息,下次登录时记住账号和密码。重在说明各种存储形式的原理。

    文件存储:

    以I/O流的形式把数据存入手机内存或SD卡,可以存储大数据,如音乐、图片或视频等。对于手机内存来说系统会根据每个应用的包名创建一个/data/data/包名/的文件夹,访问自己包名下的目录是不需要权限的,并且 Android 已经提供了非常简便的 API 可以直接去访问该文件夹。访问时可以用getFilesDir()和getCacheDir(),两个的区别是系统会自动清理后者中的内容。

    SD卡中的文件通常位于mnt/sdcard目录下,不同生产商生产的手机这个路径可能不同。操作sd卡的时通常要判断下sd卡是否可用以及剩余空间是否足够,因为部分手机的SD卡可卸载,SD卡处于非挂载状态时,无法进行读写操作。另外一点,对SD卡的读取和写入操作均需要相应的权限,否则无法完成。获取SD卡路径的方法是Environment.getExternalStorageDirectory(),其余操作与文件存储基本类似。

   文件存储位置:

                

 

     SD卡存储路径:

               

      数据存储在手机内存的实现方法:

package com.example.qqload;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;

import com.example.qqload_sp.R;

import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.text.TextUtils;
import android.view.Menu;
import android.view.TextureView;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
    private EditText et_qq;
    private EditText et_password;
    private CheckBox cb_remenber;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et_qq = (EditText) findViewById(R.id.et_qq);
        et_password = (EditText) findViewById(R.id.et_password);
        cb_remenber = (CheckBox) findViewById(R.id.cb_remenber);
        File file = new File(getFilesDir(), "info.txt");
//        File file = new File(getCacheDir(), "info.txt");   缓存中存放数据
        if (file.exists() && file.length() > 0) {
            try {
                FileInputStream fis = new FileInputStream(file);
                BufferedReader br = new BufferedReader(new InputStreamReader(
                        fis));
                String line = br.readLine();
                String qq = line.split("##")[0];
                String password = line.split("##")[1];
                et_qq.setText(qq);
                et_password.setText(password);
                fis.close();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    public void login(View view) {
        String qq = et_qq.getText().toString().trim();
        String password = et_password.getText().toString().trim();
        if (TextUtils.isEmpty(qq) || TextUtils.isEmpty(password)) {
            Toast.makeText(this, "密码或者用户名不能为空", 0).show();
            return;
        }
        if (cb_remenber.isChecked()) {
            File file = new File(getFilesDir(), "info.txt");
            try {
                FileOutputStream fos = new FileOutputStream(file);
                fos.write((qq + "##" + password).getBytes());
                fos.close();
                Toast.makeText(MainActivity.this, "保存成功", 0).show();
            } catch (Exception e) {
                Toast.makeText(MainActivity.this, "保存失败", 0).show();
                e.printStackTrace();
            }
        }
    }
}

        

        数据存储在SD卡中的实现方法:     

package com.example.qqload;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.Fil



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android系统属性简介,android属性简介
  • Android系统的五种数据存储形式(二),android数据存储
  • Android系统的五种数据存储形式(一),android数据存储

相关文章

  • 2017-05-26AsyncTask基础(笔记)
  • 2017-11-18android 多线程断点续传视频列表
  • 2017-05-26php迁移遇到的问题
  • 2017-05-26Android小知识汇总,android小知识
  • 2017-05-26安卓第十八天笔记--简单动画,安卓第十八天--
  • 2017-05-26关于视频编辑SDK的接入说明,视频编辑sdk接入
  • 2017-05-26Android开发:消息机制简述
  • 2017-05-26AsyncTask.cancel()的结束问题,asynctaskcancel
  • 2017-05-26认识Activity,创建第一个android应用,activityandroid
  • 2017-05-26自定义控件详解(一):Paint类与Canvas类,paintcanvas

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ListView中响应item的点击事件并且刷新界面,listviewitem
    • XAMARIN ANDROID 二维码扫描示例,xamarinandroid
    • 关于百度地图导航AndroidSDK的初始化问题,androidsdk初始化
    • android源码解析之(五)--)Log相关介绍
    • android eclipse关联源码,以及源码(代码)以及jar查看软件,androideclipse
    • Nginx反向代理导致大文件下载失败
    • Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例,phonegapcordova
    • Android之侧滑导航栏,android滑导航栏
    • Android Studio 无法启动模拟器的一种可能是你装的是Ghost版的系统,androidstudio
    • Android新手入门2016(6)--客户端编程思想的初步思考和Android学习路线

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有