Android——SdCard数据存储

SDcard存储,一般是用来存一些比较大的文件,类似图片,音频,视频等等。

QQ接收的文件一般存放tecent/filerev文件夹下,也是一种sdcard存储。

既然是访问sdcard,那么必定要涉及权限问题。

在maneifest文件中设置sdcard的读取,挂载权限。

<!-- 在SDCard中创建与删除文件权限 --> 
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 

   <!-- 往SDCard写入数据权限 --> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

在sdcard存储中,只需要注意两个地方:

1、权限添加

2、sdcard的状态

 在使用外部存储时我们需要检测其状态,它可能被连接到计算机、丢失或者只读等。

获取sdcard的状态:Environment.getExternalStorageState()

要考虑这么个问题,如果sdcard还没挂载,对它是不能任何操作的,如果只有读的权

限,也是不能进行写入的,所以要获得的状态要匹配sdcard的状态。

我们来写入一个string。

String name="lpl";
        if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))//sdcard 可读可写
        {
            File file=new File("mnt/sdcard/xxx.txt");
            FileOutputStream fos=new FileOutputStream(file,true);
            fos.write(name.getBytes());
            fos.flush();

            FileInputStream fis=new FileInputStream(file);
            int len=0;
            byte b[] =new byte[10];
            StringBuffer buffer=new StringBuffer();
            while((len=fis.read(b))!=-1)
            {
                buffer.append(new String(b,0,len));
            }
            Toast.makeText(getApplicationContext(), buffer, 0).show();

            fis.close();
            fos.close();
        }else
        {
            Toast.makeText(getApplicationContext(), "Sdcard状态有问题", 0).show();
        }

这里sdcard的目录是mnt/sdcard/…. 同时也要抛出io异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值