Android中SD Card数据存取

来源:互联网 发布:js按钮弹出对话框 编辑:程序博客网 时间:2024/05/22 14:32

Android中SD Card数据存取与前面所说的Android中文件的储存与访问很类似。

1.首先完成save方法

 public void saveSDCard(String filename,String content)throws Exception {      FileOutputStream outStream=context.openFileOutput(filename,Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);//可读写的操作模式      outStream.write(content.getBytes());      outStream.close();    }  

FileService.java代码如下: 

 public class FileService{   private Context context;   public FIleService(Context context){     this.context=context;   }    //保存内容   public void saveTOSDCard(String content)throws Exception{     File file = new FIle(Environment.getExternalStorageDirectory()."SDCard.txt");//第一个参数是文件存放的文件夹路径,此方法用于获取SD Card的目录。     FileOutputStream outStream = new FileOutputStream(file);     outStream.write(content.getBytes());     outStream.close();   } } 


注:获取SD Card的目录,换种方式可以是:

  File sdCardDir = new File("/sdcard");//获取SD Card目录 File saveFile = new file(sdCardDir,"SDCard.txt");

 两句可以合并为一句:   

File saveFile = new File("/sdcard/ SDCard.txt");

2.FileServicetest.java测试类代码如下:  

 public class FileServiceTest extends AndroidTestCase{   private static final String TAG = "FileServiceTset";   public void testSaveToSDCard() throws Throwable{     if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//判断SD Card是否可用,Environment.getExternalStorageState()获取外存储设备的状态       //该状态代表SD Card已经安装在手机上,并且可以进行读写访问       FileService fileService = new FileService(getContext());       fileService.saveToSDCard("明天会更好!");     }else{      Log.i(TAG,"sdcard不存在或写保护了");     }   } }

3.执行测试,配置测试环境:
  在AndroidManifest.xml文件中的<application/>中添加  

<uses-library android:name="android.test.runner"/>

在<applicaton/>外添加  

<instrumentation android:name="android.test.InstrumrntationTestRunner" android:targetPackage="com.sharpandroid.sdcard" android:label="Tsts for My App"/>

4.访问SD Card
若在此结束,执行testSave方法程序会报错。这是因为SD Card是需要添加访问权限的,对该程序而言SD Card为不存在。
在AndroidManifest.xml添加访问SD Card 权限的代码如下:   

 <!--在SDCard中创建与删除文件权限--> <users-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!--往SDCard写入数据权限--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

再次执行。