Подтвердить что ты не робот

Доступ к файлам ресурсов на Android

У меня есть файл ресурсов в моей/res/raw/папке (/res/raw/textfile.txt), которую я пытаюсь прочитать из моего приложения для Android для обработки.

public static void main(String[] args) {

    File file = new File("res/raw/textfile.txt");

    FileInputStream fis = null;
    BufferedInputStream bis = null;
    DataInputStream dis = null;

    try {
      fis = new FileInputStream(file);
      bis = new BufferedInputStream(fis);
      dis = new DataInputStream(bis);

      while (dis.available() != 0) {
              // Do something with file
          Log.d("GAME", dis.readLine()); 
      }

      fis.close();
      bis.close();
      dis.close();

    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

Я пробовал использовать другой синтаксис пути, но всегда получаю ошибку java.io.FileNotFoundException. Как я могу получить доступ к /res/raw/textfile.txt для обработки? Является File file = new File ( "res/raw/textfile.txt" ); неправильный метод в Android?


* Ответ: *

// Call the LoadText method and pass it the resourceId
LoadText(R.raw.textfile);

public void LoadText(int resourceId) {
    // The InputStream opens the resourceId and sends it to the buffer
    InputStream is = this.getResources().openRawResource(resourceId);
    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    String readLine = null;

    try {
        // While the BufferedReader readLine is not null 
        while ((readLine = br.readLine()) != null) {
        Log.d("TEXT", readLine);
    }

    // Close the InputStream and BufferedReader
    is.close();
    br.close();

    } catch (IOException e) {
        e.printStackTrace();
    }
}
4b9b3361

Ответ 1

Если у вас есть файл в res/raw/textfile.txt из вашего вызова Activity/Widget:

getResources().openRawResource(...) возвращает InputStream

Точки должны фактически быть целым числом, найденным в R.raw... соответствующим вашему имени файла, возможно R.raw.textfile (обычно это имя файла без расширения)

new BufferedInputStream(getResources().openRawResource(...)); затем прочитайте содержимое файла как поток

Ответ 2

Просто тот факт, что у вас есть этот public static void main(String[] args), означает, что вы неправильно используете свой код. Вы почти наверняка не прошли ни одного из приветственных упражнений для Android. Вы должны это сделать.