Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android 在外部存儲讀寫文件,android讀寫

Android 在外部存儲讀寫文件,android讀寫

編輯:關於android開發

Android 在外部存儲讀寫文件,android讀寫


本文主要介紹android中如何在外部存儲讀寫數據

sd卡的路徑

sdcard:2.3之前的sd卡路徑

mnt/sdcard:4.3之前的sd卡路徑

storage/sdcard:4.3之後的sd卡路徑

打開file explorer

可以看到sdcard是個空的文件夾,因為這個文件夾是個快捷方式,指向/storag文件夾,接著打開storag文件夾

讀寫sd卡

最簡單的打開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卡的路徑

* 使用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();
            }
        }
    }

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved