文件存儲是Android中最基本的一種存儲方式,和Java中實現I/O的方式,由Context類提供openFileInput()和openFileOutput()方法打開。文件存儲主要分兩種存儲,一種是內部存儲,一種是外部存儲。java
內存存儲:使用了FileInputStream類中的openFileInput()方法,用於讀取數據;使用了FileOutputStream類中的openFileOutput()方法,用於寫入數據。android
外部存儲:使用Enviroment類中的getExternalStorageDirectory()方法對外部存儲上的文件進行讀寫。數據庫
File file = new File(this.getFilesDir(), "info.txt"); try { FileOutputStream fos = new FileOutputStream(file); String info = qq + "##" + password; fos.write(info.getBytes()); fos.close(); } catch (Exception e) { e.printStackTrace(); }
/** * 根據原來保存的文件信息,把QQ號碼和密碼信息顯示到界面 */ private void restoreInfo() { File file = new File(this.getFilesDir(), "info.txt"); // 若是文件存在而且有內容就讀取出來 if (file.exists() && file.length() > 0) { try { FileInputStream fis = new FileInputStream(file); BufferedReader br = new BufferedReader(new InputStreamReader(fis)); String info = br.readLine(); String qq = info.split("##")[0]; String pwd = info.split("##")[1]; mEtnumber.setText(qq); mEtPasswd.setText(pwd); } catch (Exception e) { e.printStackTrace(); } } }
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
/** * 模擬向SD卡寫入一個視頻文件 * @param view */ public void click(View view) { performCodeWithPermission("寫入文件到sd卡", new PermissionCallback() { @Override public void hasPermission() { // 檢查SD卡的狀態 if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { File sdFile = Environment.getExternalStorageDirectory();// 外部存儲空間 long sdSize = sdFile.getFreeSpace(); if (sdSize > 5 * 1024 * 1024) {// 5M File file = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis() + "hlw.3gp"); try { FileOutputStream fos = new FileOutputStream(file); byte[] buffer = new byte[1024]; for (int i = 0; i < 5 * 1024; i++) { fos.write(buffer); } fos.close(); } catch (Exception e) { e.printStackTrace(); } } else { Toast.makeText(MainActivity.this,"sd卡空間不足", Toast.LENGTH_SHORT).show(); } } else { Toast.makeText(MainActivity.this,"沒有掛載", Toast.LENGTH_SHORT).show(); } } @Override public void noPermission() { } }, Manifest.permission.WRITE_EXTERNAL_STORAGE); } }
對用戶輸入的帳號以及密碼進行存儲,而且進行顯示。咱們使用SharedPreferencesjson
/** * 保存用戶名 密碼的業務方法 * @param context 上下文 * @param username 用戶名 * @param pas 密碼 * @return true 保存成功 false 保存失敗 */ public static void saveUserInfo(Context context,String username,String pas){ /** * SharedPreferences將用戶的數據存儲到該包下的shared_prefs/config.xml文件中, * 而且設置該文件的讀取方式爲私有,即只有該軟件自身能夠訪問該文件 */ SharedPreferences sPreferences=context.getSharedPreferences("config", context.MODE_PRIVATE); Editor editor=sPreferences.edit(); //固然sharepreference會對一些特殊的字符進行轉義,使得讀取的時候更加準確 editor.putString("username", username); editor.putString("password", pas); //這裏咱們輸入一些特殊的字符來實驗效果 editor.putString("specialtext", "hajsdh><?//"); editor.putBoolean("or", true); editor.putInt("int", 47); //切記最後要使用commit方法將數據寫入文件 editor.commit(); }
//顯示用戶此前錄入的數據 SharedPreferences sPreferences=getSharedPreferences("config", MODE_PRIVATE); String username=sPreferences.getString("username", ""); String password =sPreferences.getString("password", ""); ed_username.setText(username); ed_pasw.setText(password);
<?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <string name="specialtext">hajsdh><?//</string> <string name="username">dsa</string> <string name="password">dasdasd</string> <int name="int" value="47" /> <boolean name="or" value="true" /> </map>
// 建立Json JSONObject jsonObject = new JSONObject(); try { jsonObject.put("name", "jadyli"); jsonObject.put("gender", "male"); jsonObject.put("age", 18); System.out.println(jsonObject.toString(1)); } catch (JSONException e) { e.printStackTrace(); } // 解析Json String json = "{\"name\": \"jadyli\", \"gender\": \"male\", \"age\": 18}"; try { JSONObject jsonObject = new JSONObject(json); System.out.println("姓名:" + jsonObject.getString("name")); System.out.println("性別:" + jsonObject.getString("gender")); System.out.println("年齡:" + jsonObject.getString("age")); } catch (JSONException e) { e.printStackTrace(); }