Android cómo obtener acceso a los recursos sin procesar que puse en la carpeta res?

En J2ME, he hecho esto así: getClass().getResourceAsStream("/raw_resources.dat");

Pero en Android, siempre me pongo nulo en esto, ¿por qué?

 InputStream raw = context.getAssets().open("filename.ext"); Reader is = new BufferedReader(new InputStreamReader(raw, "UTF8")); 

Para los archivos sin procesar, debería considerar crear una carpeta sin procesar dentro del directorio res y luego llamar a getResources().openRawResource(resourceName) de su actividad.

En algunas situaciones, tenemos que obtener una imagen de la carpeta dibujable o sin procesar usando el nombre de la imagen en su lugar si se genera una identificación

 // Image View Object mIv = (ImageView) findViewById(R.id.xidIma); // create context Object for to Fetch image from resourse Context mContext=getApplicationContext(); // getResources().getIdentifier("image_name","res_folder_name", package_name); // find out below example int i = mContext.getResources().getIdentifier("ic_launcher","raw", mContext.getPackageName()); // now we will get contsant id for that image mIv.setBackgroundResource(i); 
 TextView txtvw = (TextView)findViewById(R.id.TextView01); txtvw.setText(readTxt()); private String readTxt() { InputStream raw = getResources().openRawResource(R.raw.hello); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); int i; try { i = raw.read(); while (i != -1) { byteArrayOutputStream.write(i); i = raw.read(); } raw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return byteArrayOutputStream.toString(); } 

TextView01 :: txtview en el archivo linearlayout hello :: .txt en la carpeta res / raw (también puede acceder a la carpeta ny othr)

Las 2 líneas están 2 escritas en el método onCreate ()

el descanso debe escribirse en clase ampliando Actividad !!

getClass().getResourcesAsStream() funciona bien en Android. Solo asegúrate de que el archivo que estás intentando abrir esté incrustado correctamente en tu APK (abre la APK como ZIP).

Normalmente en Android colocas esos archivos en el directorio de assets . Por lo tanto, si coloca el raw_resources.dat en el subdirectorio de assets de su proyecto, terminará en el directorio de assets en el APK y podrá usar:

 getClass().getResourcesAsStream("/assets/raw_resources.dat"); 

También es posible personalizar el proceso de comstackción para que el archivo no llegue al directorio de assets en el APK.

InputStream in = getResources (). OpenRawResource (resourceName);

Esto funcionará correctamente. Antes de eso tienes que crear el archivo xml / archivo de texto en el recurso sin formato. Entonces será accesible.

Editar
Algunas veces com.andriod.R se importará si hay algún error en el archivo de diseño o en los nombres de las imágenes. Entonces, tiene que importar el paquete correctamente, entonces solo se podrá acceder al archivo sin formato.

Un acercamiento anticipado está usando la función de Extensión de Kotlin

 fun Context.getRawInput(@RawRes resourceId: Int): InputStream { return resources.openRawResource(resourceId) } 

Una cosa más interesante es el uso de la función de extensión que se define en el scope de Closeable

Por ejemplo, puede trabajar con flujo de entrada de manera elegante sin manejar excepciones y administración de memoria

 fun Context.readRaw(@RawRes resourceId: Int): String { return resources.openRawResource(resourceId).bufferedReader(Charsets.UTF_8).use { it.readText() } }