Android中SD Card数据存取

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"/>

再次执行。                                                                         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值