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

Android初学笔记——内部存储器的读写

时间:2015-06-24 18:44:50      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

手机的内存分为运行内存(RAM)和手机的存储容量(ROM),当然大部分手机还支持外部存储卡,今天的只是在手机的内存空间中进行简单的读写操作

下面是一个登录界面和该界面的xml文件内容

技术分享

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:gravity="center_vertical"
 6     tools:context=".MainActivity" >
 7     
 8     <EditText 
 9         android:id="@+id/edit_name"
10         android:layout_width="match_parent"
11         android:layout_height="wrap_content"
12         android:hint="@string/login_username"/>
13     <EditText 
14         android:id="@+id/edit_password"
15         android:layout_width="match_parent"
16         android:layout_height="wrap_content"
17         android:hint="@string/login_password"
18         android:password="true"
19         android:layout_below="@id/edit_name"/>
20     <LinearLayout 
21         android:layout_width="match_parent"
22         android:layout_height="wrap_content"
23         android:orientation="horizontal"
24         android:layout_below="@id/edit_password">
25         
26         <CheckBox 
27             android:id="@+id/choice"
28             android:layout_width="0dp"
29             android:layout_height="wrap_content"
30             android:layout_weight="1"
31             android:text="@string/login_check"/>
32         <Button 
33             android:id="@+id/btn_login"
34             android:layout_width="wrap_content"
35             android:layout_height="wrap_content"
36             android:text="@string/btn_login"/>
37     </LinearLayout>
38 </RelativeLayout>

一个简单的相对布局页面,选择是否保存账户和密码,点击登录,会在手机内部存储空间里生成一个相应的文件,文件类型自行决定,在这里就用一个简单的文本文档来保存账户和密码,部分代码如下:

public void onClick(View view) {
        switch (view.getId()) {
        case R.id.btn_login:
            String name=editName.getText().toString();
            String password=editPassword.getText().toString();
            if(choice.isChecked()){
                try {
                    File file=new File("data/data/com.zzqhfuf.innerstore/login.txt");
                    fos = new FileOutputStream(file);
                    fos.write((name+"#"+password).getBytes());
                    fos.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            Toast.makeText(this, "登陆成功", 0).show();
            break;

        default:
            break;
        }
    }

这里当点击按钮后,在手机中的某个位置生成一个txt文件,通过FileOutputStream将用户名和密码写入到文本中,然后关闭文件输出流,密码和账户用“#”好分割,方便取出。后面的Toast没太大意义..

接下来就是文件的读取了,一开始进来就会去读取文件,因此首先要判断文件是否存在。

file=new File("data/data/com.zzqhfuf.innerstore/login.txt");
            if(file.exists()){
                FileInputStream fis=new FileInputStream(file);
                byte[] b=new byte[1024*4];
                int hasRead=0;
                String s;
                while((hasRead=fis.read(b))>0){
                    s=new String(b, 0, hasRead);
                    String[] strs=s.split("#");
                        editName.setText(strs[0]);
                        editPassword.setText(strs[1]);
                        choice.setChecked(true);
                }
                fis.close();
            }

当然,用户下次可能选择不保存密码和账户,但上次有保存过文件,这样就达不到目的。所以在用户不选择保存的情况时,应删除保存的文件

if(file.exists()){//文件存在
                    if(file.isFile())//判断是否为文件
                        file.delete();
                }

 

Android初学笔记——内部存储器的读写

标签:

原文地址:http://www.cnblogs.com/zzqhfuf/p/4597973.html

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