码迷,mamicode.com
首页 > 移动开发 > 详细

Android数据存储之IO

时间:2015-07-12 17:30:53      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:操作   android   数据存储   代码   

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

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

功能描述:点击按钮能够保存用户输入的用户名和密码,当点击记住密码时,亦能在应用第二次打开时,回显用户名和密码

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);
        // 密码edit
        editPwd = (EditText) findViewById(R.id.edit_pwd);
        // 登陆button
        btnLogin = (Button) findViewById(R.id.btn_login);
        // 记住账号和密码checkbox
        checkbox = (CheckBox) findViewById(R.id.checkbox);

        // 回显账号和密码
        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为了防止开发人员手写路径容易出现错误,装门提供了两个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();
            }
        });
    }

    /**
     * 回显用户名和密码
     */
    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.输入账号和密码,点击登陆按钮,我们可以在DDMS中的file explore中看到保存的txt格式文件:

技术分享

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

技术分享

可以看到账号和密码被正确的保存了,且格式正确。

5.关闭应用,再次打开

技术分享

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android数据存储之IO

标签:操作   android   数据存储   代码   

原文地址:http://blog.csdn.net/weiwosuoai/article/details/46850871

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!