1. 程式人生 > >SD卡操作【安卓8】

SD卡操作【安卓8】

roo extern 檢查 return tdi 程序 equal 針對 ron

讀寫SD卡

  Context類的openFileInput和openFileOutput方法都是針對應用程序的數據文件夾進行的文件操作,由於手機的ROM容量有限,因此這種操作有一定局限性。

  手機的SD卡提供了比ROM更大的存儲容量。更加適合於存取大文件。

Environment[android.os. Environment]

常量及方法

類型

描述

public static final String MEDIA_MOUNTED

常量

擴展存儲設允許進行讀寫訪問

public static final String MEDIA_CHECKING

常量

擴展存儲設處於檢查狀態

public static final String MEDIA_MOUNTED_READ_ONLY

常量

擴展存儲設處於只讀狀態

public static final String MEDIA_REMOVED

常量

擴展存儲設不存在

public static final String MEDIA_UNMOUNTED

常量

沒有找到擴展存儲設

public static File getDataDirectory()

普通

取得Data目錄

public static File getDownloadCacheDirectory()

普通

取得下載的緩存目錄

public static File getExternalStorageDirectory()

普通

取得擴展的存儲目錄

public static String getExternalStorageState()

普通

取得擴展存儲設備的狀態

public static File getRootDirectory()

普通

取得Root目錄

public static boolean isExternalStorageRemovable()

普通

判斷擴展的存儲目錄是否被刪除

申請SD卡的讀寫權限

  打開項目清單文件,在Permission選項卡中選擇權限

技術分享

SD卡文件讀取操作

技術分享
 1 private TextView tv;    
 2 private Button bt1;
 3 private Button bt2;     
 4 private EditText et;
 5 
 6 protected void onCreate(Bundle savedInstanceState) {
 7         super.onCreate(savedInstanceState);
 8         setContentView(R.layout.xml文件);
 9         et = (EditText) findViewById(R.id.sdET);
10         tv = (TextView) findViewById(R.id.sdTV);
11         bt1 = (Button) findViewById(R.id.sdBT01);
12         bt2 = (Button) findViewById(R.id.sdBT02);
13         bt1.setOnClickListener(this);
14         bt2.setOnClickListener(this);
15     }
16 
17 public void onClick(View v) {
18         if (!Environment.getExternalStorageState().equals(
19                 Environment.MEDIA_MOUNTED)) {// 判斷SD卡是否存在
20             Toast.makeText(Sd0.this, "SD卡不存在", 3000).show();
21             return;
22         }
23         switch (v.getId()) {
24         case R.id.sdBT01:
25             // 創建文件夾對象
26             File dir = new File(Environment.getExternalStorageDirectory(),"test");
27             if (!dir.exists()) { // 如果目錄不存在,就創建
28                 dir.mkdir();
29             }
30             File file = new File(dir, "test.txt"); // 創建文件
31             PrintWriter pw;
32             try {
33                 pw = new PrintWriter(file);
34                 pw.println(et.getText().toString());
35                 pw.close();
36                 Toast.makeText(Sd0.this, "保存成功", 3000).show();
37             } catch (FileNotFoundException e) {
38                 e.printStackTrace();
39             }
40             break;
41         case R.id.sdBT02:
42             File f = new File(Environment.getExternalStorageDirectory()+
43                     "/test/test.txt");// 創建文件夾對象
44             BufferedReader br;
45             try {
46                 br = new BufferedReader(new InputStreamReader(new FileInputStream(f)));
47                 String str = null;
48                 while ((str = br.readLine()) != null) {
49                     tv.append(str);
50                 }
51             } catch (FileNotFoundException e) {
52                 e.printStackTrace();
53             } catch (IOException e) {
54                 e.printStackTrace();
55             }
56             break;
57         }
58 }
View Code

SD卡操作【安卓8】