歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android的文件操作(SD卡)

在上次的http://www.linuxidc.com/Linux/2011-11/48174.htm 中寫過直接操作手機自帶存儲器的程序,這次就接著上次的協議下對sd卡的文件操作。與自帶存儲不同的是使用sd卡需要用戶授權

  1. <uses-permission Android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  
  2. <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>  
千萬要記住不能寫顛倒了,不然看不到結果

之後寫個方法來保存文件

  1. public void saveToSD(String filename,String content) throws Exception{  
  2.         //getExternalStorageDirectory()可以取得sd卡得路徑   
  3.         File f=new File(Environment.getExternalStorageDirectory(),filename);  
  4.         FileOutputStream out2=new FileOutputStream(f);  
  5.         out2.write(content.getBytes());  
  6.         out2.close();  
  7.     }  
最後就可以在控制層使用這個方法了,需要對SD卡得狀態作判斷,取得狀態可以使用Environment.getExternalStorageState(),如果可用才能保存文件,反之就提示“sd卡不存在或不可用”
  1. package org.lxh.file;  
  2.   
  3. import org.lxh.service.FileService;  
  4.   
  5. import android.app.Activity;  
  6. import android.os.Bundle;  
  7. import android.os.Environment;  
  8. import android.util.Log;  
  9. import android.view.View;  
  10. import android.widget.Button;  
  11. import android.widget.EditText;  
  12. import android.widget.Toast;  
  13.   
  14. public class FileActivity extends Activity {  
  15.     private FileService service;  
  16.     public void onCreate(Bundle savedInstanceState) {  
  17.         super.onCreate(savedInstanceState);  
  18.         setContentView(R.layout.main);  
  19.           
  20.         service=new FileService(this);  
  21.         Button button=(Button)findViewById(R.id.button);  
  22.         button.setOnClickListener(new View.OnClickListener() {    
  23.               
  24.             public void onClick(View v) {  
  25.                 EditText filename=(EditText)findViewById(R.id.filename);  
  26.                 EditText content=(EditText)findViewById(R.id.content);  
  27.                 try {  
  28.                     if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){  
  29.                         service.saveToSD(filename.getText().toString(), content.getText().toString());  
  30.                         Toast.makeText(FileActivity.this, R.string.success, 1).show();  
  31.                     }else{  
  32.                         Toast.makeText(FileActivity.this,  R.string.sd, 1).show();  
  33.                     }  
  34.                     //service.saveFile(filename.getText().toString(), content.getText().toString());   
  35.                       
  36.                 } catch (Exception e) {  
  37.                     Toast.makeText(FileActivity.this, R.string.failure, 1).show();  
  38.                     Log.e("FileActivity", e.getMessage());  
  39.                 }  
  40.             }  
  41.         });  
  42.           
  43.     }  
  44. }  
下面 把strings.xml也貼出來
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.     <string name="hello">Hello World, FileActivity!</string>  
  4.     <string name="app_name">文件的讀取</string>  
  5.     <string name="filename">輸入文件名稱</string>  
  6.     <string name="content">輸入文件內容</string>  
  7.     <string name="button">保存</string>  
  8.     <string name="success">文件保存成功</string>  
  9.     <string name="failure">文件保存失敗</string>  
  10.     <string name="sd">sd卡不存在或不可用</string>  
  11. </resources>  
到這裡就可以對SD卡進行操作了,這次的東西比較少。有問題也可以給我留言。
Copyright © Linux教程網 All Rights Reserved