Динамическое чтение файлов с SD-карты

Ребята, у меня есть текстовый файл на SD-карте, мне нужно прочитать этот файл.

Ниже мой код для чтения файлов:

 File f = new File(Environment.getExternalStorageDirectory()+"/f1.txt");
       fileIS = new FileInputStream(f);
            BufferedReader buf = new BufferedReader(new InputStreamReader(fileIS));
           String readString = new String(); 
           //just reading each line and pass it on the debugger
           while((readString = buf.readLine())!= null){
              textdata.setText(readString);
              Log.d("line: ", readString);
           }
        } catch (FileNotFoundException e) {
           e.printStackTrace();
        } catch (IOException e){
           e.printStackTrace();
        }

Но мне нужно динамически читать файлы с SD-карты.

здесь я дал это как f1.txt


person Goofy    schedule 01.03.2012    source источник
comment
Что вы на самом деле подразумеваете под словом «Динамически»? спасибо   -  person Triode    schedule 01.03.2012
comment
почему Спасибо? Дунамически означает, что мне не нужно указывать имя файла, он подберет файл во время выполнения.   -  person Goofy    schedule 01.03.2012
comment
Хорошо, вы хотите, чтобы пользователь ввел имя файла, или вам нужны все имена файлов, которые существуют в каталоге?   -  person Triode    schedule 01.03.2012


Ответы (1)


Попробуй это:

File f = new File(Environment.getExternalStorageDirectory().toString() + "/audio");
if (f.isDirectory())
{
    String files[] = f.list();
    for (int i = 0; i < files.length; i++)
    {
        Log.d("", files[i]);
    }
}
person Dmytro Danylyk    schedule 01.03.2012
comment
у меня есть файлы в одном конкретном каталоге, т. е. звук на SD-карте, он оттуда забирает? - person Goofy; 01.03.2012
comment
Просто введите путь к вашему каталогу внутри конструктора объекта File. - person Dmytro Danylyk; 01.03.2012
comment
последний вопрос: мне нужно передать это значение files[i] в ​​звуковой пул, где мне это сделать sound1 = mSoundPool.load(files[i], 1); он показывает мне ошибку arrayindex вне связанного исключения - person Goofy; 01.03.2012
comment
Похоже, вы получаете элемент из несуществующего массива, попробуйте использовать для каждого цикла вместо for: for(String file: files){ Log.d(, files[i]);} - person Dmytro Danylyk; 01.03.2012
comment
эй, мне нужна помощь от тебя? Пожалуйста, помогите - person Goofy; 02.03.2012
comment
заменить for (int i = 0; i ‹ files.length; i++) { Log.d(, files[i]); } для (строковый файл: файлы) { Log.d (, файлы [i]);} - person Dmytro Danylyk; 02.03.2012
comment
давайте продолжим это обсуждение в чате - person Dmytro Danylyk; 02.03.2012