LABORATORIO DE ACCESO A ARCHIVOS IN (APK) OUT (SD CARD)
Para acceder a archivos texto, tenemos dos opciones en Android, realizarlo dentro de la aplicacin o fuera de la aplicacin. Cuando es dentro de la aplicacin, el archivo se copia en el folder ASSETS, pero cuando es fuera de la aplicacin, el archivo texto se copia en la memoria SD. A continuacin tenemos tres botones que acceden a un archivo de recetas (RECES.DAT) que previamente fue copiada al folder ASSETS y copiador tambin a la memoria SD card ( /mnt/sdcard) del emulador. Para copiar a la SD-CARD, desde el eclipse ingresamos a la vista DDMS, le damos click al emulador que ya fue levantado, y en la pantalla de la derecha seleccionamos FILE EXPLORER, una vez que aparezca los directorios de nuestro emulador, ingresamos al folder MNT y luego a SDCARD. Finalmente seleccionamos uno de los conos que estn en la parte superior derecha de la pantalla, que parecen puertitas, el que seleccionamos es el PUSH y subimos el archivo RECES.DAT
NIVEL 1: Pruebe el presente programa
public void metodo1(View vista){ String estado = Environment.getExternalStorageState(); TextView tv = (TextView) findViewById(R.id.textView1); if ( !estado.equals(Environment.MEDIA_MOUNTED)){ tv.setText("No hey memoria SD"); finish(); } tv.setText("Listo la memoria SD"); File dir = Environment.getExternalStorageDirectory(); File puntero = new File(dir.getAbsolutePath()+File.separator+"reces.dat"); try { BufferedReader lector = new BufferedReader(new FileReader(puntero)); StringBuilder texto = new StringBuilder(); String linea; while ( (linea=lector.readLine())!=null){ texto.append(linea); texto.append("\n"); } lector.close(); tv.setText(texto); } catch (IOException e){ e.printStackTrace(); } } public void metodo2(View vista){ String estado = Environment.getExternalStorageState(); TextView tv = (TextView) findViewById(R.id.textView1); if ( !estado.equals(Environment.MEDIA_MOUNTED)){ tv.setText("No hey memoria SD"); finish(); }
Curso de Android
INF-325
M.Sc. Reynaldo Zeballos
tv.setText("Listo la memoria SD");
File dir = Environment.getExternalStorageDirectory(); File puntero = new File(dir.getAbsolutePath()+File.separator+"reces.dat"); try { Scanner lector = new Scanner(new FileReader(puntero)); StringBuilder texto = new StringBuilder(); String linea; while ( lector.hasNext() ){ linea = lector.nextLine(); texto.append(linea); texto.append("\n"); } lector.close(); tv.setText(texto); } catch (IOException e){ e.printStackTrace(); } } public void metodo3(View vista){ try { AssetManager p = getAssets(); InputStream lector = p.open("reces.dat"); ByteArrayOutputStream bs = new ByteArrayOutputStream(); String linea; int largo=0; byte[] bytes= new byte[4096]; while ( (largo=lector.read(bytes))>0 ){ bs.write(bytes,0,largo); } lector.close(); linea = new String( bs.toByteArray(), "UTF-8"); TextView tv = (TextView) findViewById(R.id.textView1); tv.setText(linea); p.close(); } catch (IOException e){ e.printStackTrace(); } } public void limpiar(View vista){ TextView tv = (TextView) findViewById(R.id.textView1); tv.setText(""); }
NIVEL 2: Listar el men principal del archivo MANUALANDROID.TXT,
mostrando en el LISTBOX todos los ttulos principales (XYZ),(NIVEL 3) ttulos secundarios (YYY) y (NIVEL 4)subttulos (ZZZ), de modo que cuando uno seleccione una opcin, el sistema muestre ESA parte del manual.