Android SD卡简单的文件读写操作

时间:2022-09-04 19:10:34

首先如果要在程序中使用sdcard进行存储,我们必须要在AndroidManifset.xml文件进行下面的权限设置:

[html] view plain copy Android SD卡简单的文件读写操作Android SD卡简单的文件读写操作
  1.   <!-- SDCard中创建与删除文件权限 -->  
  2.   <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>  
  3.  <!-- 向SDCard写入数据权限 -->  
  4.  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  

  接着在使用SDcard进行读写的时候 会用到Environment类下面的几个静态方法  : 

    1: getDataDirectory() 获取到Android中的data数据目录(sd卡中的data文件夹)
    2:getDownloadCacheDirectory() 获取到下载的缓存目录(sd卡中的download文件夹)
    3:getExternalStorageDirectory() 获取到外部存储的目录 一般指SDcard(/storage/sdcard0)
    4:getExternalStorageState() 获取外部设置的当前状态 一般指SDcard,比较常用的应该是 MEDIA_MOUNTED(SDcard存在并且可以进行读写)还有其他的一些状态,可以在文档中进行查找。

    5:getRootDirectory()  获取到Android Root路径


好,以下是具体操作,直接看代码:

1,判断SD卡是否存在

[java] view plain copy Android SD卡简单的文件读写操作Android SD卡简单的文件读写操作
  1. /** 
  2.  * 判断SDCard是否存在 [当没有外挂SD卡时,内置ROM也被识别为存在sd卡] 
  3.  *  
  4.  * @return 
  5.  */  
  6. public static boolean isSdCardExist() {  
  7.     return Environment.getExternalStorageState().equals(  
  8.             Environment.MEDIA_MOUNTED);  
  9. }  

2,获取SD卡根目录

[java] view plain copy Android SD卡简单的文件读写操作Android SD卡简单的文件读写操作
  1. /** 
  2.  * 获取SD卡根目录路径 
  3.  *  
  4.  * @return 
  5.  */  
  6. public static String getSdCardPath() {  
  7.     boolean exist = isSdCardExist();  
  8.     String sdpath = "";  
  9.     if (exist) {  
  10.         sdpath = Environment.getExternalStorageDirectory()  
  11.                 .getAbsolutePath();  
  12.     } else {  
  13.         sdpath = "不适用";  
  14.     }  
  15.     return sdpath;  
  16.   
  17. }  

3,获取默认的文件存放路径

[java] view plain copy Android SD卡简单的文件读写操作Android SD卡简单的文件读写操作
  1. /** 
  2.  * 获取默认的文件路径 
  3.  *  
  4.  * @return 
  5.  */  
  6. public static String getDefaultFilePath() {  
  7.     String filepath = "";  
  8.     File file = new File(Environment.getExternalStorageDirectory(),  
  9.             "abc.txt");  
  10.     if (file.exists()) {  
  11.         filepath = file.getAbsolutePath();  
  12.     } else {  
  13.         filepath = "不适用";  
  14.     }  
  15.     return filepath;  
  16. }  

4-1,使用FileInputStream读取文件

[java] view plain copy Android SD卡简单的文件读写操作Android SD卡简单的文件读写操作
  1. try {  
  2. le file = new File(Environment.getExternalStorageDirectory(),  
  3. "test.txt");  
  4.     FileInputStream is = new FileInputStream(file);  
  5.     byte[] b = new byte[inputStream.available()];  
  6.     is.read(b);  
  7.     String result = new String(b);  
  8.     System.out.println("读取成功:"+result);  
  9. catch (Exception e) {  
  10.     e.printStackTrace();  
  11. }  

4-2,使用BufferReader读取文件

[java] view plain copy Android SD卡简单的文件读写操作Android SD卡简单的文件读写操作
  1. try {  
  2.     File file = new File(Environment.getExternalStorageDirectory(),  
  3.             DEFAULT_FILENAME);  
  4.     BufferedReader br = new BufferedReader(new FileReader(file));  
  5.     String readline = "";  
  6.     StringBuffer sb = new StringBuffer();  
  7.     while ((readline = br.readLine()) != null) {  
  8.         System.out.println("readline:" + readline);  
  9.         sb.append(readline);  
  10.     }  
  11.     br.close();  
  12.     System.out.println("读取成功:" + sb.toString());  
  13. catch (Exception e) {  
  14.     e.printStackTrace();  
  15. }  

httpConnection读取流保存成String数据

[java] view plain copy Android SD卡简单的文件读写操作Android SD卡简单的文件读写操作
  1. URL url = new URL(getForwardUrl("/queryUserByUNorIP"));  
  2. HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
  3. InputStream is = conn.getInputStream();  
  4. BufferedReader br = new BufferedReader(new InputStreamReader(is));  
  5. StringBuilder sb = new StringBuilder();  
  6. String readline = null;  <li class="alt" style="border-top: none; border-right: none;%