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

时间:2023-03-08 17:48:47
Android入门开发之SD卡读写操作(转)

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

1. 获取SD卡的根目录

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

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

  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卡上创建文件

  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卡的某个目录

  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卡指定目录文件

  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