2010-09-23 55 views
21

如何從SD卡讀取特定文件。我已經通過DDMS在SD卡中推送文件,我試圖通過這種方式閱讀它,但這給了我例外。任何人都可以告訴我如何準確地指出該文件?從android中讀取SD卡中的特定文件

我的代碼是這樣的。

String path = Environment.getExternalStorageDirectory().getAbsolutePath(); 
FileInputStream iStream = new FileInputStream(path); 

回答

47

您正在嘗試讀取目錄...您需要的是該文件!做這樣的事情......然後,你可以根據需要閱讀文件。

File dir = Environment.getExternalStorageDirectory(); 
File yourFile = new File(dir, "path/to/the/file/inside/the/sdcard.ext"); 
+0

有一個contactbackup.vcf文件存儲在SD卡中。我怎樣才能一一讀取.vcf文件@ Cristian: – pratik 2012-05-01 11:12:22

+0

嗨,我可以問是否有方法返回文件名嗎?如果文件名不爲我所知。 @Cristian – kojh 2013-05-12 01:03:28

1

讀取任何文件從外部存儲器(CSV在我的情況),我們需要爲它的路徑,一旦你有路徑,你可以做這樣的...

void readFileData(String path) throws FileNotFoundException 
    { 

     String[] data; 
     File file = new File(path); 
     if (file.exists()) 
     { 
      BufferedReader br = new BufferedReader(new FileReader(file)); 
      try 
      { 
       String csvLine; 
       while ((csvLine = br.readLine()) != null) 
       { 
        data=csvLine.split(","); 
        try 
        { 
         Toast.makeText(getApplicationContext(),data[0]+" "+data[1],Toast.LENGTH_SHORT).show(); 
        } 
        catch (Exception e) 
        { 
         Log.e("Problem",e.toString()); 
        } 
       } 
      } 
      catch (IOException ex) 
      { 
       throw new RuntimeException("Error in reading CSV file: "+ex); 
      } 
     } 
     else 
     { 
      Toast.makeText(getApplicationContext(),"file not exists",Toast.LENGTH_SHORT).show(); 
     } 
    } 

/* 
csv file data 

17IT1,GOOGLE 
17IT2,AMAZON 
17IT3,FACEBOOK*/ 
在我的應用程序