歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android的文件操作(SD卡)

Android的文件操作(SD卡)

日期:2017/3/1 10:55:41   编辑:Linux編程

在上次的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. import org.lxh.service.FileService;
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.os.Environment;
  6. import android.util.Log;
  7. import android.view.View;
  8. import android.widget.Button;
  9. import android.widget.EditText;
  10. import android.widget.Toast;
  11. public class FileActivity extends Activity {
  12. private FileService service;
  13. public void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.main);
  16. service=new FileService(this);
  17. Button button=(Button)findViewById(R.id.button);
  18. button.setOnClickListener(new View.OnClickListener() {
  19. public void onClick(View v) {
  20. EditText filename=(EditText)findViewById(R.id.filename);
  21. EditText content=(EditText)findViewById(R.id.content);
  22. try {
  23. if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
  24. service.saveToSD(filename.getText().toString(), content.getText().toString());
  25. Toast.makeText(FileActivity.this, R.string.success, 1).show();
  26. }else{
  27. Toast.makeText(FileActivity.this, R.string.sd, 1).show();
  28. }
  29. //service.saveFile(filename.getText().toString(), content.getText().toString());
  30. } catch (Exception e) {
  31. Toast.makeText(FileActivity.this, R.string.failure, 1).show();
  32. Log.e("FileActivity", e.getMessage());
  33. }
  34. }
  35. });
  36. }
  37. }
下面 把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