zoukankan      html  css  js  c++  java
  • Android读写SD卡

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

       1. 获取SD卡的根目录

    String  sdCardRoot = Environment.getExternalStorageDirectory().getAbsolutePath();   
    // 何问起 hovertree.com

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

    /** 
     * 在SD卡上创建目录 
     */  
    public File createDirOnSDCard(String dir)  
    {  
        File dirFile = new File(sdCardRoot + File.separator + dir +File.separator);  
        Log.v("createDirOnSDCard", sdCardRoot + File.separator + dir +File.separator);  
        dirFile.mkdirs();  
        return dirFile;  
    }  
    // 何问起 hovertree.com

     3. 在SD卡上创建文件

    /** 
     * 在SD卡上创建文件 
     */  
    public File createFileOnSDCard(String fileName, String dir) throws IOException  
    {  
        File file = new File(sdCardRoot + File.separator + dir + File.separator + fileName);  
        Log.v("createFileOnSDCard", sdCardRoot + File.separator + dir + File.separator + fileName);  
        file.createNewFile();  
        return file;  
    }  // 何问起 hovertree.com

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

    /** 
     * 判断SD卡上文件是否存在 
     */  
    public boolean isFileExist(String fileName, String path)  
    {  
        File file = new File(sdCardRoot + path + File.separator + fileName);  
        return file.exists();  
    }  // 何问起 hovertree.com

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

    // 何问起 hovertree.com
    /* 写入数据到SD卡中 
         */  
        public File writeData2SDCard(String path, String fileName, InputStream data)  
        {  
            File file = null;  
            OutputStream output = null;  
              
            try {  
                createDirOnSDCard(path);  //创建目录  
                file = createFileOnSDCard(fileName, path);  //创建文件  
                output = new FileOutputStream(file);  
                byte buffer[] = new byte[2*1024];          //每次写2K数据  
                int temp;  
                while((temp = data.read(buffer)) != -1 )  
                {  
                    output.write(buffer,0,temp);  
                }  
                output.flush();  
                  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
            finally{  
                try {  
                    output.close();    //关闭数据流操作  
                } catch (Exception e2) {  
                    e2.printStackTrace();  
                }  
            }  
              
            return file;  
        } 

       one more important thing:

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

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

    推荐:http://www.cnblogs.com/roucheng/p/3504465.html

  • 相关阅读:
    云产品-容器镜像服务(CR)
    mysql中写sql的好习惯
    关于Redis的一些问题
    解决zookeeper在windows下启动闪退的问题
    SQL-基于派生表的查询
    exec()内置方法
    CentOS 7使用yum无法安装htop等工具的解决办法
    CentOS7更换yum源为阿里云yum源
    坑(二十)——正则分组返回结果
    坑(十九)—— Git clone 时遇到fatal: protocol 'https' is not supported问题解决方案
  • 原文地址:https://www.cnblogs.com/roucheng/p/sdka.html
Copyright © 2011-2022 走看看