2014-08-03 2 views
0

Где я могу поместить определенный текстовый файл в проект Eclipse, если я хочу прочитать его содержимое?Прочтите текстовый файл в Android - где поместить файл

Какие предметы следует использовать?

Я пробовал использовать следующий синтаксис, но файл не найден? Может быть, в этом случае используется файловая система компьютеров?

private void read() throws FileNotFoundException, IOException { 

    File file = new File("test.txt"); 
    FileReader fileReader = new FileReader(file); 
    BufferedReader buffReader = new BufferedReader(fileReader); 

    String[] stringBuffer = new String[2]; 
    String line; 
    int i = 0; 
    while ((line = buffReader.readLine()) != null) { 

     stringBuffer[i] = line; 
     i++; 
    } 

    System.out.println(stringBuffer[0] + stringBuffer[1]); 
} 

Моя идея заключалась в том, что поиск начинается в RootFolder проекта, но я предполагаю, что его совершенно неправильно, потому что компьютеры файловая система используется?

+0

, что об использовании 'папку/assets'? или вы можете создать подпапку под ним. –

ответ

4

Если вы хотите связать этот файл с вашим приложением Android во время сборки, у вас есть два варианта: папка /raw под /res или папка /assets. Вы должны поместить свой файл здесь и получить доступ к нему правильным образом для выбранного каталога. Для получения дополнительной информации читайте больше о встроенных папках для Android-проекта here.

Например, если вы храните текстовый файл в /assets/, что, скорее всего, является правильным местом для текстового файла, вам необходимо получить доступ к содержимому файла, используя AssetManager. Давайте предположим, что вы создали файл с именем:

/assets/test.txt 

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

AssetManager assetManager = this.getResources().getAssets(); 
InputStream input = assetManager.open("test.txt"); 

Теперь вы можете использовать этот входной поток для чтения из файла способом, аналогичным тому, как вы это делали в исходном вопросе. Вы можете использовать это InputStream для создания BufferedReader, как показано ниже, предполагается, что ваш текстовый контент кодируется в UTF-8:

BufferedReader br = 
    new BufferedReader(new InputStreamReader(input, "UTF-8")); 
+0

Без проблем @ user3155478! Спасибо @ user2365568, я исправил ссылку на переменные. – mattgmg1990

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