編輯:關於android開發
本文主要介紹android中如何在外部存儲讀寫數據
sdcard:2.3之前的sd卡路徑
mnt/sdcard:4.3之前的sd卡路徑
storage/sdcard:4.3之後的sd卡路徑
打開file explorer
可以看到sdcard是個空的文件夾,因為這個文件夾是個快捷方式,指向/storag文件夾,接著打開storag文件夾
最簡單的打開sd卡的方式
File file = new File("sdcard/info.txt");
* 寫sd卡需要權限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
運行程序
* 讀sd卡,在4.0之前不需要權限,4.0之後可以設置為需要
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
* 使用api獲得sd卡的真實路徑,部分手機品牌會更改sd卡的路徑
Environment.getExternalStorageDirectory()
* 判斷sd卡是否准備就緒
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
完整代碼如下:
public void saveAccount(String name, String pass) { // 判斷sd卡狀態 if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { // 得到一個file對象,路徑是sd卡的真實路徑 File file = new File("sdcard/info.txt"); try { FileOutputStream fos = new FileOutputStream(file); fos.write((name + "##" + pass).getBytes()); fos.close(); } catch (Exception e) { e.printStackTrace(); } } else { Toast.makeText(this, "sd卡不可用喲", 0).show(); } } public void loadAccount() { File file = new File("sdcard/info.txt"); if (file.exists()) { try { FileInputStream fis = new FileInputStream(file); // 把字節流轉換為字節流 BufferedReader br = new BufferedReader(new InputStreamReader( fis)); String text = br.readLine(); String[] s = text.split("##"); // 獲取用戶輸入的賬號和密碼 EditText et_name = (EditText) findViewById(R.id.et_name); EditText et_pass = (EditText) findViewById(R.id.et_pass); et_name.setText(s[0]); et_pass.setText(s[1]); } catch (Exception e) { e.printStackTrace(); } } }
SwipeRefreshLayout + RecyclerView 實現 上拉刷新 和 下拉刷新,swiperefreshlayout下拉刷新和上拉刷新都用SwipeRe
Android開發自學筆記(Android Studio)—4.5 ProgressBar及其子類,androidprogressbar一、前言 Progr
Android開發學習之路--異步消息Handler,Message,Looper和AsyncTask之初體驗 在簡易音樂播放器中,用了Handler,也沒有過多地去
git筆記,git學習筆記這篇有關git的博客,寫著寫著有些崩了。裡面有些碎碎念了。下次一定注意這個問題。 創建項目: midir xx :創建xx文件夾 git in