• 数据存储基础


    1.把数据存储到文件中

    Android应用程序存储数据的方式

        1、保存到文件

        2、SQLite数据库

        3、内容提供者

        4、sharedproferrences保存数据

        5、网络

        /data/data/应用包名/info.txt

    2.从文件中读取数据并显示到界面上

    (1)把文件保存到当前应用程序的目录下的步骤:

        1、创建一个文件,目录/data/data/<包名>/文件名
        2、创建一个文件输出流,把数据写到文件上
        3、关闭输出流。
        代码:
             //保存数据
             File file = new File("/data/data/com.itheima.login/info.txt");
             FileOutputStream fos = new FileOutputStream(file);
             String info = qq + "##"+ pwd;
             fos.write(info.getBytes());

             fos.close();
             Toast.makeText(this, "保存数据成功", 0).show();

    (2)读取文件中的数据,并显示到界面上

             @Override
             protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.activity_main);

             et_qq = (EditText) findViewById(R.id.et_qq);

             et_pwd = (EditText) findViewById(R.id.et_pwd);

             cb = (CheckBox) findViewById(R.id.cb);

             //读取文件中的数据,并显示到界面上
             Map<String,String> map = readInfo(this);
             if(map != null){
             et_qq.setText(map.get("qq"));

             et_pwd.setText(map.get("pwd"));
                }

             }


    /**
    * 读取文件中的数据
    * @param ctx
    * @return
    */
    public Map<String,String> readInfo(Context ctx){
    String qq = "";
    String pwd = "";
    Map<String,String> map = new HashMap<String,String>();
    try {
    File file = new File("/data/data/com.itheima.login/files/info.txt");
    FileReader fr = new FileReader(file);
    BufferedReader br = new BufferedReader(fr);
    String info = br.readLine();

    String[] array = info.split("##");
    qq = array[0];
    pwd = array[1];

    map.put("qq", qq);

    map.put("pwd", pwd);
    return map;

    } catch (Exception e) {
    e.printStackTrace();
    return null;
    }


    }

    3.存储到SD卡(重点)

        异常信息:
        09-21 23:25:32.068: W/System.err(24718): java.io.FileNotFoundException: /storage/sdcard/info.txt: open failed: EACCES (Permission denied)
        步骤:

        1、 在SD卡上创建一个文件,

        2、创建一个输出流往sd卡上写数据
    String data = "dsfdsae";

    File file = new File(Environment.getExternalStorageDirectory(), "info.txt");

    FileOutputStream fos = new FileOutputStream(file);
    fos.write(data.getBytes());

    fos.close();

       3、在清单文件中添加访问SD卡的权限
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

  • 相关阅读:
    ajax提交转码解码
    关于idea开发工具常用的快捷键
    oracle 查询某个时间段数据
    hibernate : object references an unsaved transient instance 问题
    log4j日志
    JS关键字 import
    代码正常,junit却报错原因及解决方法
    hdu 5868 Polya计数
    hdu 5893 (树链剖分+合并)
    hdu 5895 广义Fibonacci数列
  • 原文地址:https://www.cnblogs.com/banzhuan/p/6401696.html
Copyright © 2020-2023  润新知