標籤:
手機的記憶體分為運行記憶體(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初學筆記——內部儲存空間的讀寫