liuxiaoyun1210的个人空间 https://passport2.21ic.com/?695946 [收藏] [复制] [RSS]

日志

Android开发之SD卡上文件操作

已有 477 次阅读2016-8-22 15:47 |系统分类:嵌入式系统

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>


  1. public void onCreate(Bundle savedInstanceState) {  
  2.       super.onCreate(savedInstanceState);  
  3.       setContentView(R.layout.main);  
  4.       text = (TextView)findViewById(R.id.text);  
  5.       try {  
  6.           File urlFile = new File("/sdcard/test.txt");  
  7.           InputStreamReader isr = new InputStreamReader(new FileInputStream(urlFile), "UTF-8");  
  8.           BufferedReader br = new BufferedReader(isr);    
  9.           String str = "";     
  10.           String mimeTypeLine = null ;  
  11.           while ((mimeTypeLine = br.readLine()) != null) {  
  12.             str = str+mimeTypeLine;  
  13.         }   
  14.           text.setText(str);  
  15. catch (Exception e) {  
  16.     e.printStackTrace();  
  17. }  
  18.   }  

android-读取本地txt文件
写入的话可以

[java] view plain copy
  1. FileOutputStream writerStream = new FileOutputStream(filePath, true);    
  2. BufferedWriter oWriter = new BufferedWriter(new OutputStreamWriter(writerStream, "UTF-8"));  

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)