zoukankan      html  css  js  c++  java
  • Android数据存储之IO

    Android开发中免不了数据本地的存储,今天我们来说一说怎样利用IO流来进行数据存储。

    这里我们通过模拟一个QQ登陆界面的小demo来实际操作IO流。

    功能描写叙述:点击button能够保存用户输入的username和password,当点击记住password时。亦能在应用第二次打开时,回显username和password

    1.这里布局文件的代码就不贴了,看效果图

    这里写图片描写叙述

    2.MainActivity.java

    package com.example.viewswitchtest;
    
    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 java.util.ArrayList;
    import java.util.List;
    
    import android.os.Bundle;
    import android.os.Environment;
    import android.app.Activity;
    import android.graphics.drawable.Drawable;
    import android.telephony.SmsManager;
    import android.util.Log;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.CheckBox;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        private EditText editAccount;
        private EditText editPwd;
        private Button btnLogin;
        private CheckBox checkbox;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            // 账号edit
            editAccount = (EditText) findViewById(R.id.edit_account);
            // passwordedit
            editPwd = (EditText) findViewById(R.id.edit_pwd);
            // 登陆button
            btnLogin = (Button) findViewById(R.id.btn_login);
            // 记住账号和passwordcheckbox
            checkbox = (CheckBox) findViewById(R.id.checkbox);
    
            // 回显账号和password
            readAccountAndPwd();
    
            btnLogin.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View arg0) {
    
                    if (checkbox.isChecked()) {
    
                        String account = editAccount.getText().toString();
                        String pwd = editPwd.getText().toString();
    
                        // android为了防止开发者手写路径easy出现错误,装门提供了两个API 
                        // getFilesDir() --> 相应的路径:data/data/项目包名/files
                        // getCacheDir() --> 相应的路径:data/data/项目包名/cache
                        File file = new File(getFilesDir(), "info.txt");
    
                        try {
                            FileOutputStream fos = new FileOutputStream(file);
                            fos.write((account + "-" + pwd).getBytes()); // 保存格式为"account-password",方便切割
                            fos.close();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                    Toast.makeText(MainActivity.this, "login success", Toast.LENGTH_LONG).show();
                }
            });
        }
    
        /**
         * 回显username和password
         */
        private void readAccountAndPwd() {
    
            File file = new File(getFilesDir(), "info.txt");
    
            if (file.exists()) {
                try {
                    FileInputStream fis = new FileInputStream(file);
                    BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
                    String text = reader.readLine();
                    String[] infos = text.split("-");
    
                    // 回显信息
                    editAccount.setText(infos[0]);
                    editPwd.setText(infos[1]);
    
                    fis.close();
                    reader.close();
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

    3.输入账号和password,点击登陆button,我们能够在DDMS中的file explore中看到保存的txt格式文件:

    这里写图片描写叙述

    4.导出文件,通过文本编辑器打开验证,账号password是否正确:

    这里写图片描写叙述

    能够看到账号和password被正确的保存了。且格式正确。

    5.关闭应用。再次打开

    这里写图片描写叙述

    能够看到,数据能够被正确的回显到输入框中。:-D。。!

  • 相关阅读:
    sersync 配合rsync实时同步备份
    全网实时热备inotify+rsync
    rsync定时同步配置
    NFS架构搭建详解
    visio2013密钥
    jekens介绍及服务搭建
    服务端开发新框架
    docker
    ymal
    linux部署环境配置
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7227208.html
Copyright © 2011-2022 走看看