Как прочитать файл из внутренней памяти телефона в Android? - PullRequest
3 голосов
/ 04 февраля 2010

Я скачал файл с HttpConnection, используя FileOutputStream в Android, и теперь он записывается во внутреннюю память телефона по пути, как я нашел в File Explorer

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

Теперь я хочу открыть и прочитать содержимое файла из внутренней памяти телефона в пользовательский интерфейс. Я попытался сделать это с помощью 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();
}

Ответы [ 3 ]

6 голосов
/ 02 июня 2011
String filePath = context.getFilesDir().getAbsolutePath();//returns current directory.
File file = new File(filePath, fileName);

Similar post here 

чтение файла из памяти телефона

4 голосов
/ 04 февраля 2010

Если файл находится там, где вы говорите, и ваше приложение com.example.packagename, то вызов openFileInput("123.ics"); вернет вам FileInputStream для данного файла.

Или позвоните getFilesDir(), чтобы получить объект File, указывающий на /data/data/com.example.packagename/files, и работайте оттуда.

0 голосов
/ 03 февраля 2011

Я использую этот код для открытия файла во внутренней памяти. Я думаю, что смогу помочь.

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