En J2ME, que he hago así: getClass().getResourceAsStream("/raw_resources.dat");
Android cómo obtener acceso a los recursos sin procesar que puse en la carpeta res?
Pero en androide, siempre me nula en esto, ¿por qué?
En J2ME, que he hago así: getClass().getResourceAsStream("/raw_resources.dat");
Android cómo obtener acceso a los recursos sin procesar que puse en la carpeta res?
Pero en androide, siempre me nula en esto, ¿por qué?
InputStream raw = context.getAssets().open("filename.ext");
Reader is = new BufferedReader(new InputStreamReader(raw, "UTF8"));
Consulte la respuesta de Samuh (abajo), es más preciso. – BoD
Como nota al margen, la carpeta sin formato no permite el acceso por nombre de archivo. Algunas aplicaciones necesitan nombres de archivos dinámicos, por lo que en esos casos la carpeta 'assets' es útil – Caner
no preguntó sobre activos/preguntó acerca de res/raw/ –
Para los archivos sin formato, debe considerar la creación de una carpeta sin formato dentro del directorio res y luego llamar al getResources().openRawResource(resourceName)
desde su actividad.
Samuh, gracias por su respuesta, si hago esto, tengo errores Problema de formato de Android XML, porque no uso xml estándar, ¿hay alguna otra manera de usarlo como datos realmente sin formato? – Arkaha
¿qué quiere decir con XML no estándar? También puede agrupar archivos XML en activos. – Samuh
Samuh, estoy portando la aplicación j2me, y tiene archivos con la extensión * .xml, contenido de dichos archivos muy similar a xml, pero no es lo mismo, eclipse gritando en estos archivos, porque no puede compilarlo. Probablemente puedo establecer algún tipo de "ignorar" en estos archivos? pero no sé cómo ... – Arkaha
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 LinearLayout hola :: archivo .txt en res/carpeta en bruto (u puede acceder a la carpeta othr ny como wel)
Ist 2 líneas están escritas en 2 onCreate() método
resto debe escribirse en clase extendiendo Actividad !!
En algunas situaciones que tenemos para obtener la imagen de la carpeta estirable o crudo usando nombre de la imagen en lugar si se generan 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);
Esta línea: int i = mContext.getResources(). GetIdentifier (" ic_launcher "," raw ", mContext.getPackageName()); es GOLD – Radu
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.
openRawResource() requiere un int, no una cadena http://developer.android.com/reference/android/content/res/Resources.html#openRawResource(int) – mmathieum
Esto también funcionará en los recursos que existen en el carpeta dibujable? –
Use "R.raw.NameOfResource" como int. – CristianCV
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 pone esos archivos en el directorio assets
. Así que si usted pone el raw_resources.dat
en el assets
subdirectorio de su proyecto, que va a terminar en el directorio assets
en el APK y se puede utilizar:
getClass().getResourcesAsStream("/assets/raw_resources.dat");
También es posible personalizar el proceso de construcción para que el archivo no aterriza en el directorio assets
en el APK.
Un enfoque avance está utilizando la función de extensión
fun Context.getRawInput(@RawRes resourceId: Int): InputStream {
return resources.openRawResource(resourceId)
}
Una cosa más interesante es función de extensión uso que se define en el alcance que se puede cerrar
Por ejemplo, puede trabajar con flujo de entrada de manera elegante y sin Manejo de excepciones y administración de memoria
fun Context.readRaw(@RawRes resourceId: Int): String {
return resources.openRawResource(resourceId).bufferedReader(Charsets.UTF_8).use { it.readText() }
}
Hay una gran diferencia entre la programación de androi d y J2ME – Janusz
Es divertido leer un comentario sobre una pregunta sobre algo que funciona de forma idéntica en Android y J2ME. Ver mi respuesta – 0xF