Android入门开发之SD卡读写操作(转)

SD卡的读写是我们在开发android 应用程序过程中最常见的操作。下面介绍SD卡的读写操作方式:

1. 获取SD卡的根目录

[java] view plaincopy

  1. String  sdCardRoot = Environment.getExternalStorageDirectory().getAbsolutePath();

2. 在SD卡上创建文件夹目录

[java] view plaincopy

  1. /**
  2. * 在SD卡上创建目录
  3. */
  4. public File createDirOnSDCard(String dir)
  5. {
  6. File dirFile = new File(sdCardRoot + File.separator + dir +File.separator);
  7. Log.v("createDirOnSDCard", sdCardRoot + File.separator + dir +File.separator);
  8. dirFile.mkdirs();
  9. return dirFile;
  10. }

3. 在SD卡上创建文件

[java] view plaincopy

  1. /**
  2. * 在SD卡上创建文件
  3. */
  4. public File createFileOnSDCard(String fileName, String dir) throws IOException
  5. {
  6. File file = new File(sdCardRoot + File.separator + dir + File.separator + fileName);
  7. Log.v("createFileOnSDCard", sdCardRoot + File.separator + dir + File.separator + fileName);
  8. file.createNewFile();
  9. return file;
  10. }

4.判断文件是否存在于SD卡的某个目录

[java] view plaincopy

  1. /**
  2. * 判断SD卡上文件是否存在
  3. */
  4. public boolean isFileExist(String fileName, String path)
  5. {
  6. File file = new File(sdCardRoot + path + File.separator + fileName);
  7. return file.exists();
  8. }

5.将数据写入到SD卡指定目录文件

[java] view plaincopy

  1. <span style="white-space:pre">  </span>/**
  2. * 写入数据到SD卡中
  3. */
  4. public File writeData2SDCard(String path, String fileName, InputStream data)
  5. {
  6. File file = null;
  7. OutputStream output = null;
  8. try {
  9. createDirOnSDCard(path);  //创建目录
  10. file = createFileOnSDCard(fileName, path);  //创建文件
  11. output = new FileOutputStream(file);
  12. byte buffer[] = new byte[2*1024];          //每次写2K数据
  13. int temp;
  14. while((temp = data.read(buffer)) != -1 )
  15. {
  16. output.write(buffer,0,temp);
  17. }
  18. output.flush();
  19. } catch (Exception e) {
  20. e.printStackTrace();
  21. }
  22. finally{
  23. try {
  24. output.close();    //关闭数据流操作
  25. } catch (Exception e2) {
  26. e2.printStackTrace();
  27. }
  28. }
  29. return file;
  30. }

 one more important thing:

      对SD卡的操作,必须要申请权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

转自:http://blog.csdn.net/newjerryj/article/details/8829179

时间: 2024-10-28 22:05:32

Android入门开发之SD卡读写操作(转)的相关文章

Android手机内存,SD卡读写

在手机上有两个存储位置 1 手机内部存储 2 SD卡 文件操作模式: 是否允许外部访问? 文件以覆盖/追加方式写? 手机内存读写 //保存文件到手机内存 public void save(String fileName,String content) throws IOException{ FileOutputStream fos = context.openFileOutput("a.txt", Context.MODE_PRIVATE); fos.write(content.get

Android Rom分区 与 SD卡读写

1.Rom分区 在Android中,对数据的保护是很严密的.除了放在SD卡中的数据,一个应用所拥有的数据库.文件等内容都是不允许其他应用直接访问的,这一部分数据都是在/data/data里面. 这里所说的SD卡是逻辑上的SD卡,比如我现在用的galaxy s4 的Rom是16g,Android系统会把这16g分成两个部分,一个是系统和应用程序数据区,另一个就是虚拟的SD卡,可以称它为内置SD卡. 我们平时外插进手机的是TF卡,简称Micro SD卡,具体的可以参考百度. 三星手机默认的内置SD卡

Android开发之sd卡存储和机身存储的路径获取

来源:https://blog.csdn.net/anjingshuai/article/details/84682779 开发过程中碰到将文件存储到手机中时,要先判断是否有sd卡,如下所示 // 判断是否有SD卡   private static boolean ExistSDCard() {   if (android.os.Environment.getExternalStorageState().equals(   android.os.Environment.MEDIA_MOUNTED

Android入门开发之Linearlayout布局(七)

前言 上一节我们主要讲解了linux下的权限说明,今天我们来了解一下Android中的UI设计,聊聊android中常用的布局. android中的布局主要有六种,分别是线性布局(LinearLayout),相对布局(Relativelayout),帧布局(FrameLayout),网格布局(GridLayout)以及绝对布局(AbsoluteLayout)和表格布局(TableLayout),在这六种布局中,我们比较常用的就是线性布局和相对布局以及帧布局,所以在布局方面,我打算主要围绕这三个布

android 64 sd卡读写的操作

package com.itheima.writesd; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.

Android中向SD卡读写数据,读SD卡和手机内存

package com.example.sdoperation; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import android.support.v7.app.Actio

Android 安全开发之 ZIP 文件目录遍历

1.ZIP文件目录遍历简介 因为ZIP压缩包文件中允许存在"../"的字符串,攻击者可以利用多个"../"在解压时改变ZIP包中某个文件的存放位置,覆盖掉应用原有的文件.如果被覆盖掉的文件是动态链接so.dex或者odex文件,轻则产生本地拒绝服务漏洞,影响应用的可用性,重则可能造成任意代码执行漏洞,危害用户的设备安全和信息安全.比如近段时间发现的"寄生兽"漏洞.海豚浏览器远程命令执行漏洞.三星默认输入法远程代码执行漏洞等都与ZIP文件目录遍历有

Android安全开发之ZIP文件目录遍历

1.ZIP文件目录遍历简介 因为ZIP压缩包文件中允许存在"../"的字符串,攻击者可以利用多个"../"在解压时改变ZIP包中某个文件的存放位置,覆盖掉应用原有的文件.如果被覆盖掉的文件是动态链接so.dex或者odex文件,轻则产生本地拒绝服务漏洞,影响应用的可用性,重则可能造成任意代码执行漏洞,危害用户的设备安全和信息安全.比如近段时间发现的"寄生兽"漏洞.海豚浏览器远程命令执行漏洞.三星默认输入法远程代码执行漏洞等都与ZIP文件目录遍历有

Android安全开发之Provider组件安全

Android安全开发之Provider组件安全 作者:伊樵.呆狐@阿里聚安全 1 Content Provider组件简介 Content Provider组件是Android应用的重要组件之一,管理对数据的访问,主要用于不同的应用程序之间实现数据共享的功能.Content Provider的数据源不止包括SQLite数据库,还可以是文件数据.通过将数据储存层和应用层分离,Content Provider为各种数据源提供了一个通用的接口. 创建一个自己的Content Provider需要继承