2010-02-04 4 views
3

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

/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(); 
} 
+0

вы, вероятно, следует сохранить на внешней памяти, так что вы не заставить пользователя запустить из космоса, и вам нужно разрешение сделать это. – CrackerJack9

+0

@rob где вы инициализируете InputStream? так как из вашего кода я вижу, что он установлен в null. – Waqas

ответ

4

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

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

+0

Я пытался сделать это таким же образом, но его не работает – rob

+0

вы можете увидеть проблему в этом, извините, может быть, это не читается – rob

+0

@rob, отредактируйте исходный вопрос, чтобы добавить эту информацию, а не размещать ее в комментариях. Кроме того, добавьте свой стек. –

-2

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

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

разные телефоны используют разные области хранения. вы должны использовать apis для определения правильного местоположения. поиск данные хранение. – CrackerJack9

Смежные вопросы