通用类_读取和写入SDCard

来源:互联网 发布:淘宝男装潮流店铺 编辑:程序博客网 时间:2024/05/22 14:33

读写权限:

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

1.写入到SDCard

/**  * 根据输入流写入到SD卡中的位置  * 需要权限:  * android.permission.MOUNT_UNMOUNT_FILESYSTEMS 在SD卡上创建文件的权限  * android.permission.WRITE_EXTERNAL_STORAGE 写入SD卡的权限  * @param is 输入流  * @param dirpath sd卡中存放的文件的目录  * @param targetFileName sd卡中存放的文件的名称  */ public static void writeToSDCard(InputStream is,String dirpath,String targetFileName) {  // TODO Auto-generated method stub    if((Environment.MEDIA_MOUNTED).equals(Environment.getExternalStorageState())){ //判断SDCard是否存在,是否可以具有访问SDCard的权限      try    {    String pathString;    if(dirpath.equals("")){         pathString = Environment.getExternalStorageDirectory().getCanonicalPath();    }else{         pathString = Environment.getExternalStorageDirectory().getCanonicalPath() + "/"+ dirpath;    }         File filePath = new File(pathString); //创建目录       if(!filePath.exists()){     filePath.mkdir();    }          File saveFile = new File(filePath, targetFileName);    FileOutputStream fos = new FileOutputStream(saveFile); //准备待写入的文件        byte[] buffer = new byte[1024];    int count;        while((count = is.read(buffer)) != -1){          fos.write(buffer, 0, count);    }    fos.close();    is.close();      } catch (IOException e) {    // TODO Auto-generated catch block    e.printStackTrace();  } }}

                        FileOutputStream fos = new FileOutputStream(pathString + fileName);
                        fos.write(sb.toString().getBytes());
                        fos.close();is.close();

 


2.从SDCard中读取

public void readFromSDCard(String fileName) {// TODO Auto-generated method stubif(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){try {FileInputStream fis = new FileInputStream(Environment.getExternalStorageDirectory().getCanonicalPath()+ TARGET_DIR_NAME + TARGET_FILE_NAME);  InputStreamReader reader = new InputStreamReader(fis);BufferedReader buffer = new BufferedReader(reader);StringBuffer sb = new StringBuffer();String str;while(null != (str=buffer.readLine())){sb.append(str);}fis.close();System.out.println("读取的文件为: " + sb.toString());                }catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

项目地址:http://dl.vmall.com/c0aj2u4bc9

原创粉丝点击