2015-03-24 2 views
0

Я пытаюсь прочитать файл из SDCard с помощью следующего кодаНевозможно прочитать файл с сд карты в Android

 f = new RandomAccessFile("/storage/sdcard0/trac.txt", "r"); 

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

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.READ_LOGS" /> 
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE"/> 
<uses-permission android:name="android.permission.READ_MEDIA_STORAGE"/> 
<uses-permission android:name="android.permission.ACCESS_SUPERUSER"></uses-permission> 
<uses-permission android:name="android.permission.INJECT_EVENTS"></uses-permission> 
+0

сообщение журнала аварии. вы уверены, что путь правильный? – agamov

+0

Я пытаюсь вспомнить точные детали, но я считаю, что если вы запустите под общим идентификатором пользователя с системой, вам будет запрещено использовать внешнее хранилище для унаследованных причин, связанных с процессами, убиваемыми при размонтировании, - поэтому вы можете проверить этот код в обычном приложении и посмотреть, работает ли он там. В более общем плане вы должны определить путь хранения во время выполнения, а не гадать. Было бы полезно показать код записи, который, по-видимому, подразумевает работу, и как уже запросил фактический журнал сбоя. –

ответ

-1

Попробуйте получить свой путь сд карты, делая это:

String yourpath = Environment.getExternalStorageDirectory() 
          .getAbsolutePath() + "/folderName/"; 
+0

Это возвращает/хранит/эмулирует/0 not/sdcard – Mahdi

-1
try { 
       File myFile = new File("/sdcard/mysdfile.txt"); 
       FileInputStream fIn = new FileInputStream(myFile); 
       BufferedReader myReader = new BufferedReader(
         new InputStreamReader(fIn)); 
       String fileStr= ""; 
       String aBuffer = ""; 
       while ((fileStr= myReader.readLine()) != null) { 
        aBuffer += fileStr+ "\n"; 
       } 
       txtData.setText(aBuffer); 
       myReader.close(); 
       Toast.makeText(getBaseContext(), 
         "Done reading SD 'mysdfile.txt'", 
         Toast.LENGTH_SHORT).show(); 
      } catch (Exception e) { 
       Toast.makeText(getBaseContext(), e.getMessage(), 
         Toast.LENGTH_SHORT).show(); 
      } 

Его полезно для меня. Чтобы более подробно:

How to read a selected text file from sdcard on android

+0

Бросок случайных контрастных примеров, которые вы вырезали и вставляли где-нибудь (независимо от того, онлайн-источник или ваша собственная работа) не все, что полезно при решении конкретной проблемы с плакатом. –

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