還剩兩個月,時間不多,決定這段時間每天都做一下總結,把每天的新知識點都歸納起來.
Android下的數(shù)據(jù)讀寫
Android中輸入輸出
- 從文件里面讀取數(shù)據(jù)
- 把數(shù)據(jù)寫到文件
android下應用程序的路徑和javase不同,應用程序的路徑要保存在自己的文件夾里面.
getFileDir();獲取自己的文件夾/data/data/包名/files
getCacheDir();獲取自己的文件夾/data/data/包名/cache
Android給我們提供了兩種應用程序的目錄:
- files目錄存放重要的應用程序數(shù)據(jù),手機不會自動清理files目錄中的文件
- cache目錄是存放臨時的不重要的數(shù)據(jù),這個目錄有個特點,當手機內(nèi)存空間不足時,會自動清理cache中目錄的文件
手機存儲空間的劃分
-
手機的內(nèi)部存儲(訪問手機內(nèi)部存儲空間方法:Environment.getDataDirectory();)
- file目錄
- cache目錄
手機的外部存儲(訪問手機外部存儲空間方法:Environment.getExternalStorageDirectory();)
登錄界面模擬代碼
public void onCreat(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText text = (EditText) findViewById(R.id.Text);
EditText textpassword = (EditText) findViewById(R.id.TextPassword);
CheckBox cb = (CheckBox) findViewById(R.id.checkBox);
readinfo();
}
public void onCick(View v){
int i=0;
//獲取賬戶并復制給一個字符串
String text = text.getText().toString.trim();
String password = text.getText().toString.trim();
//假如用戶輸入為空我們就先做一個判斷并提醒用戶沒有輸入
//TextUtils.isEmpty(text)=="".equals(text):此方法就是判斷是否為空字符串,為空就返回
if(TextUtils.isEmpty(text))||TextUtils.isEmpty(password)){
Toast.makeText(this,"請輸入用戶名及密碼",Toast.LENGTH_LONG).show();
}else {
//判斷是否需要記錄用戶名與密碼
//cb.isChecked():此方法判斷選項框是否被選中
if (cb.isChecked()) {//被選中狀態(tài),需要記錄用戶名和密碼
//創(chuàng)建一個文件,并取一個名字
try {
File file = new File("/data/data/com.example.Test04_store/info.txt");
//寫數(shù)據(jù)需要一個文件輸出流,并把創(chuàng)建的文件傳入流中
//因為是在Android中,所以這個地方要寫入android中的全路徑才能執(zhí)行
FileOutputStream fos = new FileOutputStream(file);
//然后把賬戶名與命名拼接到一個數(shù)據(jù)中,方便存儲:100000##123456String
info = Text + "##" + password;
//然后把封裝后的數(shù)據(jù)寫入到文件中
fos.write(info.getBytes());
//關閉流
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//判斷登錄密碼正確還是錯誤
if ("100000".equals(qq) && "123456".equals(password)) {
Toast.makeText(this, "send true", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "send false", Toast.LENGTH_LONG).show();
}
}
}
// 根據(jù)原來的保存的數(shù)據(jù)取出來,并顯示在界面中
public void readinfo(){
//得到這個文件
File file = new File("/data/data/com.example.Test04_store/info.txt");
//判斷這個文件是否存在,是否有數(shù)據(jù)
if(file.exists()&&file.length()>0){
try {
FileInputStream fis = new FileInputStream(file);
//這時我們只讀一行,用BufferedReader包裝一下
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String info = br.readLine();
//下面得到一個數(shù)組,數(shù)組第一個元素為帳戶名,第二個元素為密碼
String qq = info.split("##")[0];
String password = info.split("##")[1];
//把帳戶名和密碼回顯到界面中
text.setText(qq); t
extpassword.setText(password);
} catch (IOException e) {
e.printStackTrace();
}
}
}