【把文件存放在SDCard】
用Activity的openFileOutput()方法保存文件,文件是存放在手机空间上,一般手机的存储空间不是很大,存放些小文件还行,如果要存放像视频这样的大文件,是不可行的。对于像视频这样的大文件,我们可以把它存放在SDCard。 SDCard是干什么的?你可以把它看作是移动硬盘或U盘。
在程序中访问SDCard,你需要申请访问SDCard的权限。
在AndroidManifest.xml中加入访问SDCard的权限如下:
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
1 /** 2 * 保存到SD卡 3 */ 4 public void saveSD(String filename, String content) throws Exception{ 5 //File fileSD = new File(new File("/mnt/sdcard"), filename); 6 File fileSD = new File(Environment.getExternalStorageDirectory(), filename);//兼容其它版本sd卡的目录 7 FileOutputStream outStream = new FileOutputStream(fileSD); 8 outStream.write(content.getBytes()); 9 outStream.close(); 10 } 11 12 private final class ButtonClickListener implements OnClickListener 13 { 14 @Override 15 public void onClick(View v) { 16 // TODO Auto-generated method stub 17 EditText edtName = (EditText) findViewById(R.id.filename); 18 EditText edtContent = (EditText) findViewById(R.id.filecontent); 19 String fileName = edtName.getText().toString(); 20 String fileContent = edtContent.getText().toString(); 21 22 Fileservice fileSvr = new Fileservice(getApplicationContext()); 23 try { 24 //判断SD卡是否存在,及是否有写入权限 25 if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { 26 fileSvr.saveSD(fileName, fileContent); 27 Toast.makeText(getApplicationContext(), R.string.success, 1).show(); 28 } 29 else { 30 Toast.makeText(getApplicationContext(), R.string.sdcarderror, 1).show(); 31 } 32 } catch (Exception e) { 33 // TODO: handle exception 34 Toast.makeText(getApplicationContext(), R.string.fail, 1).show(); 35 e.printStackTrace(); 36 } 37 38 } 39 40 }