Android——SdCard数据存储

    xiaoxiao2021-03-25  53

    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异常。

    转载请注明原文地址: https://ju.6miu.com/read-40044.html

    最新回复(0)