一般我们的手机应用默认的存储空间是手机自带的内存中,但是对于比较大的文件比如视频、音频来说,我们可以把它存放在SDCard中:
接下来通过代码实现具体的把文件存放在SDCard中(仅实现了核心代码)
首先,因为要存放在SDCard中,我们需要提供SDCard权限:
在AndroidManifest.xml中添加权限:
<!-- 在SDCard创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS" /> <!-- 往SDCard写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
public void saveToSDCard(String filename,String content) throws Exception{ //Environment.getExternalStorageDirectory()函数是为了取得SDCard的路径 File file = new File(Environment.getExternalStorageDirectory() ,filename); //打开输出流 FileOutputStream outStream = new FileOutputStream(file); //写入内容 outStream.write(content.getBytes()); outStream.close(); }重点是:Environment.getExternalStorageDirectory()函数
最后,我们直接在点击“保存”按钮之后,调用按钮的onClick()方法,在这个方法中添加:
//new一个FileService对象,getApplicationContext()返回应用的上下文,生命周期是整个应用,应用摧毁它才摧毁 FileService service = new FileService(getApplicationContext()); try { //判断SDCard是否存在,并且可以读写, //Environment.getExternalStorageState()获得当前状态: //Environment.MEDIA_MOUNTED表示的是SDCard的状态:存在SDCard if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ service.saveToSDCard(filename, content); //调用save()方法保存文件 Toast.makeText(getApplicationContext(), R.string.success, 1).show(); //调用一个Toast呈现一个“保存完成”的消息 }else{ Toast.makeText(getApplicationContext(), R.string.sdcarderror, 1).show(); //调用一个Toast呈现一个“SDCard不存在或者写保护”的消息 } } catch (Exception e) { Toast.makeText(getApplicationContext(), R.string.fail, 1).show(); //调用Toast对象呈现一个“保存失败”的消息 e.printStackTrace(); }
原文地址:http://blog.csdn.net/u010800530/article/details/39160701