您的位置:首页 > 移动开发 > Android开发

android SD卡上文件操作

2013-08-14 16:10 218 查看
Environment 常用方法:

* 方法:getDataDirectory()
解释:返回 File ,获取 Android 数据目录。
* 方法:getDownloadCacheDirectory()
解释:返回 File ,获取 Android 下载/缓存内容目录。
* 方法:getExternalStorageDirectory()
解释:返回 File ,获取外部存储目录即 SDCard
* 方法:getExternalStoragePublicDirectory(String type)
解释:返回 File ,取一个高端的公用的外部存储器目录来摆放某些类型的文件
* 方法:getExternalStorageState()
解释:返回 File ,获取外部存储设备的当前状态
* 方法:getRootDirectory()
解释:返回 File ,获取 Android 的根目录

public void getSDPath(){

File sdDir = null;

File sdDir1 = null;
File sdDir2 = null;
boolean sdCardExist = Environment.getExternalStorageState()

.equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡是否存在

if (sdCardExist)

{

ed8f
sdDir = Environment.getExternalStorageDirectory();//获取跟目录

sdDir1 = Environment.getDataDirectory();
sdDir2 =Environment.getRootDirectory();
}

System.out.println("getExternalStorageDirectory(): "+sdDir.toString());

System.out.println("getDataDirectory(): "+sdDir1.toString());

System.out.println("getRootDirectory(): "+sdDir2.toString());

}

//判断一个路径下的文件(文件夹)是否存在

public class IsExist {
public static void main(String[] args) {
isExist("e://12");
}
/**
*

* @param path 文件夹路径
*/
public static void isExist(String path) {
File file = new File(path);
//判断文件夹是否存在,如果不存在则创建文件夹
if (!file.exists()) {
file.mkdir();
}
}
}

1.在SD卡上创建一个文件夹
public class make extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

File sd=Environment.getExternalStorageDirectory();

String path=sd.getPath()+"/notes";

File file=new File(path);

if(!file.exists())

file.mkdir();

}

1. 得到存储设备的目录:/SDCARD(一般情况下)

SDPATH=Environment.getExternalStorageDirectory()+"/";

2. 判断SD卡上的文件夹是否存在:通过File对象的exists()方法。

  /**

   * 判断文件是否已经存在;

   *

  /

  public boolean checkFileExists(String filepath) {

         File file=new File(SDPATH+filepath);

         return file.exists();

    }

3.在SD卡上创建目录:通过File对象的mkdir()方法实现。

  /*

   * 在SD卡上创建目录;

   */

  public File createDIR(String dirpath) {

    File dir=new File(SDPATH+dirpath);

    dir.mkdir();

    return dir;

}

4.在SD卡上创建文件:通过File对象的createNewFile()方法实现。

  /*

   * 在SD卡上创建文件;

   */

     public File createFile(String filepath) throws IOException{

      File file=new File(SDPATH+filepath);

           file.createNewFile();

           return file;

     }

5.将InputStream字节流写入到SD卡文件中

     /**

      * 将一个InputStream中的数据写入至SD卡中

      */

   public File writeStreamToSDCard(String dirpath,String filename,InputStream input) {

             File file = null;

             OutputStream output=null;

              try {

                  //创建目录;

                  createDIR(dirpath);

                  //在创建 的目录上创建文件;

                  file = createFile(dirpath+filename);

                  output=new FileOutputStream(file);

                  byte[]bt=new byte[4*1024];

                  while (input.read(bt)!=-1) {

                     output.write(bt);

                  }

                //刷新缓存,

                  output.flush();

              } catch (IOException e) {

                  e.printStackTrace();

              }

              finally{

                  try{

              output.close();

                  }

          catch (Exception e) {

                     e.printStackTrace();

                  }

              }

             return file;

    }

6. 访问的权限:

需在AndroidManifest中加上:

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

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

 

原文地址:http://blog.163.com/chaoyongan@126/blog/static/31068420201361601319166/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: