Acceda a archivos de recursos en Android

Tengo un archivo de recursos en mi carpeta / res / raw / (/res/raw/textfile.txt) que estoy tratando de leer desde mi aplicación de Android para su procesamiento.

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

He intentado con una syntax de ruta diferente, pero siempre recibo un error java.io.FileNotFoundException . ¿Cómo puedo acceder a /res/raw/textfile.txt para procesar? Es File file = new File (“res / raw / textfile.txt”); el método equivocado en Android?


* Respuesta: *

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

Si tiene un archivo en res/raw/textfile.txt de su actividad / widget de llamada:

getResources().openRawResource(...) devuelve un InputStream

Los puntos deberían ser un entero encontrado en R.raw … correspondiente a su nombre de archivo, posiblemente R.raw.textfile (generalmente es el nombre del archivo sin extensión)

new BufferedInputStream(getResources().openRawResource(...)); luego lea el contenido del archivo como una secuencia

El hecho de que tenga este public static void main(String[] args) significa que está implementando su código extremadamente incorrecto. Es casi seguro que no hayas pasado por ninguno de los hello android tutorials. Definitivamente deberías hacer eso.