开发环境:
Win XP + eclipse-jee-helios(版本号3.6) + ADT(版本10.0.1) + Android SDK(版本10);
模拟器及真机测试环境:Android2.2
在Android学习笔记之文件的保存与读取中学习了数据的保存,它是将数据直接保存到手机自带的存储空间,这些一般是比较小的文件。那么如何将较大的数据保存到SDCard中呢?
利用Android学习笔记之文件的保存与读取中创建的File项目,实现将数据保存到SDCard中。
File项目的目录结构如图
在业务类中FileService.java中,写一个保存到SDCard的方法saveToSDCard(),代码如下
//保存数据到SDCard public void saveToSDCard(String filename, String content) throws Exception{ //得到文件对象,找到SDCard的路径 //File file = new File("mnt/sdcard", filename); File file = new File(Environment.getExternalStorageDirectory(), filename); //得到文件输出流对象 FileOutputStream outStream = new FileOutputStream(file); outStream.write(content.getBytes()); outStream.close(); }
在MainActivity.java类中,调用保存saveToSDCard()方法将数据保存到SDCard,代码如下:
try { if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { service.saveToSDCard(filename,content);//保存数据到SDCard Toast.makeText(getApplication(), R.string.success, 1).show();//保存成功 }else{ Toast.makeText(getApplication(), R.string.sdcarderror, 1).show();//保存失败 } catch (Exception e) { Toast.makeText(getApplication(), R.string.fail, 1).show(); e.printStackTrace(); }
在清单文件AndroidManifest.xml中申明往SDCard创建文件和写入数据的权限:
<!-- 在SDCard中创建和删除文件的权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 往SDCard中写入数据的权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
将应用部署到模拟上,当点击保存时,就会在/mnt/sdcard下创建保存的文件
转载于:https://blog.51cto.com/020618/1295127