手机的内存分为运行内存(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(); }
时间: 2024-09-29 08:24:00