1.代码:
- /**
- * 向sdcard中写入文件
- * @param filename 文件名
- * @param content 文件内容
- */
- public void saveToSDCard(String filename,String content) throws Exception{
- File file=new File("/mnt/sdcard", filename);
- OutputStream out=new FileOutputStream(file);
- out.write(content.getBytes());
- out.close();
- }
sdcard对应的文件路径:"/mnt/sdcard",开发时不要写SDCard的绝对路径,因为路径会因为版本的改变而改变,这里应该使用以下方法获得SDCard的路径
对应上一段代码修改如下代码如下:
- /**
- * 向sdcard中写入文件
- * @param filename 文件名
- * @param content 文件内容
- */
- public void saveToSDCard(String filename,String content) throws Exception{
- File file=new File(Environment.getExternalStorageDirectory(), filename);
- OutputStream out=new FileOutputStream(file);
- out.write(content.getBytes());
- out.close();
- }
2.获得权限:
- <!-- 在SDCard中创建于删除文件的权限 -->
- <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
- <!-- 往SDCard中写入数据的权限 -->
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
- 3.判断SDCard状态(SDCard可能为写保护,或者没有插入SDCard)
- //向SDCard中保存
- String en=Environment.getExternalStorageState();
- //获取SDCard状态,如果SDCard插入了手机且为非写保护状态
- if(en.equals(Environment.MEDIA_MOUNTED)){
- try {
- service.saveToSDCard(filename, content);
- Toast.makeText(getApplicationContext(), "保存成功", 1).show();
- } catch (Exception e) {
- Toast.makeText(getApplicationContext(), "保存失败", 1).show();
- }
- }else{
- //提示用户SDCard不存在或者为写保护状态
- Toast.makeText(getApplicationContext(), "SDCard不存在或者为写保护状态", 1).show();
- }