灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2286回复:0

Android中把文件存放在SDCard

楼主#
更多 发布于:2012-09-06 14:00

一  SDCard介绍
1.SDCard可以把他看看做是移动硬盘或U盘,也就是手机内存
2.SDCard的创建是在eclipse创建模拟器时随同创建,也可以使用DOS命令创建
二  SDCard的使用
在程序中访问SDCard的时候需要申请访问的SDCard权限,即是在AndroidManifest.xml中加入SDCard的权限
<!--允许应用程序写到外部存储器-->
    <uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE"/>
   <!--允许装入和卸载文件系统的移动存储 -->
<uses-permission Android:name="Android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

也可以通过AndroidManifest.xml中的可视化视图来创建

我们给SDCard赋予权限之后,就可以在activity中往SDCard中写入文件了,具体的代码如下:
package cn.csdn.hr.Android.sdcard;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;

import Android.app.Activity;
import Android.os.Bundle;
import Android.os.Environment;
import Android.util.Log;

publicclass SdcardActivity extends Activity {
    @Override
    publicvoid onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       // sdcard的目录是 mnt/sdcard 或者是sdcare
       setContentView(R.layout.main);
       // 写入数据到sdcard上
       try {
           if (Environment.getExternalStorageState().equals(
                  Environment.MEDIA_MOUNTED)) {
           // 首先创建一个路径 ,路径的创建在Android1.6以上,低版本路径为/sdcard
            
              //通过web得到路径,放置有的版本不一致而出错
              File dirPath = Environment.getExternalStorageDirectory();
              //通过日志的方式输出,我们可在File Explorer中看到输出
              Log.i("MSG",dirPath.toString());
            
              //String dirPath = "/mnt/sdcard";
              // 创建写入的文件 www.atcpu.com
              File file = new File(dirPath.toString(), "csdn.txt");
              // 写入
              FileOutputStream fos = new FileOutputStream(file);
              fos.write("你好".getBytes("UTF-8"));
              fos.close();
           }
       } catch (FileNotFoundException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       } catch (UnsupportedEncodingException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }

    }
}

然后我们就可以在目录下看到所创建的csdn.text文件,目录为:



注:
1.Environment.getExternalStorageState()方法用于获取SDCard的状态,如果手机装有SDCard,并且可以进行读写,那么方法返回的状态等于Environment.MEDIA_MOUNTED。
2.Environment.getExternalStorageDirectory()方法用于获取SDCard的目录,当然要获取SDCard的目录



喜欢0 评分0
游客

返回顶部