android04

【把文件存放在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     }

 

 

 

posted @ 2013-05-27 00:58  海之涯2008  阅读(214)  评论(0)    收藏  举报