2010-02-04 270 views
3

我從HttpConnection使用FileOutputStream在Android和現在它被寫在路手機的內存,我在File Explorer如何從Android手機的內部存儲器中讀取文件?

/data/data/com.example.packagename/files/123.ics

發現它現在下載的文件,我想開&讀取文件從手機內存到UI的內容。我試圖通過使用FileInputStream來做到這一點,我只給出了帶擴展名的文件名來打開它,但我不知道如何在內部內存中提及文件的文件路徑,因爲它會強制關閉應用程序。

有什麼建議嗎?


這是我在做什麼:

try 
{    
    FileInputStream fileIn;  
    fileIn = openFileInput("123.ics"); 
    InputStream in = null; 
    EditText Userid = (EditText) findViewById(R.id.user_id); 
    byte[] buffer = new byte[1024]; 
    int len = 0; 
    while ((len = in.read(buffer)) > 0)   
    {  
    Userid.setText(fileIn.read(buffer, 0, len)); 
    }      
    fileIn.close();      
} catch (FileNotFoundException e) 
{ 
    e.printStackTrace(); 
} 
catch (IOException e) 
{ 
    e.printStackTrace(); 
} 
+0

你應該保存到外部存儲器,所以你不引起用戶運行的空間,你需要這樣的權限。 – CrackerJack9 2011-09-17 00:51:04

+0

@rob你在初始化InputStream嗎?從你的代碼中我可以看到它被設置爲null。 – Waqas 2010-09-30 06:58:57

回答

4

如果該文件是你說的這是,你的應用是​​,然後調用openFileInput("123.ics");將返回一個FileInputStream上有問題的文件。

或者,撥打電話getFilesDir()以獲得指向/data/data/com.example.packagename/filesFile對象,並從那裏開始工作。

+0

我試圖用相同的方式做,但它不工作 – rob 2010-02-04 15:28:55

+0

你可以看到這個問題,對不起可能是它不可讀 – rob 2010-02-04 15:31:05

+0

@rob,編輯您的原始問題,以添加此信息,而不是發表評論。另外,添加你的堆棧跟蹤。 – 2010-02-04 15:38:20

-2

我正在使用此代碼在內部存儲器中打開文件。我想我可以幫忙。

File str = new File("/data/data/com.xlabz.FlagTest/files/","hello_file.xml"); 
+3

不同的手機使用不同的區域進行存儲。你應該使用apis來確定正確的位置。搜索數據存儲。 – CrackerJack9 2011-09-17 00:59:45

6
String filePath = context.getFilesDir().getAbsolutePath();//returns current directory. 
File file = new File(filePath, fileName); 

Similar post here 

read file from phone memory

相關問題