SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
Materia: Desarrollo de aplicaciones III
Tema: Interfaz Almacenamiento De Datos.
Nombre completo del Alumno : Edgar Eduardo Renovato Contreras,
Grado: 5 Grupo: B
Nombre del Docente : Eloy Contreras de Lira
Fecha de entrega : 25/03/2014
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
Después de que tengamos nuestro proyecto realizado se comenzará a trabajar.
FilesActivity
Una vez nuestro proyecto esté creado, vamos a tener una Activity la cuál hemos
denominado FilesActivity.java, y su archivo layour en la carpeta res/layout con el
nombre activity_files.xml. En este archivo encontraremos la interfaz gráfica de
nuestra Activity, el cuál modificaremos para que sea como el siguiente:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".FilesActivity" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Introduzca algún texto" />
<EditText
android:id="@+id/txtText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btnGuardar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onClickGuardar"
android:text="Guardar" />
<Button
android:id="@+id/btnCargar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onClickCargar"
android:text="Cargar" />
</LinearLayout>
Podemos apreciar los siguientes elementos:
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
 TextView:Este TextView se encargará de un proceso meramente
descriptivo, para que introduzcamos algo en nuestro EditText.
 EditText – @id/txtText1: En este EditText vamos a escribir un texto
que posteriormente será guardado en el archivo.
 Button – @id/btnGuardar: Cuando pulsemos este bóton, se
ejecutará el método onClickGuardar(), recogiendo el texto del EditText y
guardandolo en un fichero.
 Button – @id/btnCargar: Cuando pulsemos este botón, se ejecutará
el método onClickCargar(), donde se recogerá el texto que hay dentro del fichero y
se establecerá en el EditText.
Explicado esto, vamos a abrir nuestra Activity, llamada en mi caso
FilesACtivity.java que se encuentra en el package sekth.droid.Files.
package sekth.droid.Files;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class FilesActivity extends Activity {
private EditText textBox;
static final int READ_BLOCK_SIZE = 100;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_files);
textBox = (EditText) findViewById(R.id.txtText1);
}
public void onClickGuardar(View v){
String str = textBox.getText().toString();
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
try{
FileOutputStream fos = openFileOutput("textFile.txt", MODE_PRIVATE);
OutputStreamWriter osw = new OutputStreamWriter(fos);
// Escribimos el String en el archivo
osw.write(str);
osw.flush();
osw.close();
// Mostramos que se ha guardado
Toast.makeText(getBaseContext(), "Guardado", Toast.LENGTH_SHORT).show();
textBox.setText("");
}catch (IOException ex){
ex.printStackTrace();
}
}
public void onClickCargar(View v){
try{
FileInputStream fis = openFileInput("textFile.txt");
InputStreamReader isr = new InputStreamReader(fis);
char[] inputBuffer = new char[READ_BLOCK_SIZE];
String s = "";
int charRead;
while((charRead = isr.read(inputBuffer)) > 0){
// Convertimos los char a String
String readString = String.copyValueOf(inputBuffer, 0, charRead);
s += readString;
inputBuffer = new char[READ_BLOCK_SIZE];
}
// Establecemos en el EditText el texto que hemos leido
textBox.setText(s);
// Mostramos un Toast con el proceso completado
Toast.makeText(getBaseContext(), "Cargado", Toast.LENGTH_SHORT).show();
isr.close();
}catch (IOException ex){
ex.printStackTrace();
}
}
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
}
Según vemos, hemos creado 2 variables de instancia, una es el EditText que
usaremos de manera global en la Activity, y otra variable de instancia es un int
llamado READ_BLOCK_SIZE, el cual explicaremos luego su función.
En el método onCreate hemos inicializado la variable textBox, que al fín y al cabo
es el EditText que hemos declarado anteriormente. Ahora ya podemos usar el
EditText en cualquier parte de nuestra actividad.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_files);
textBox = (EditText) findViewById(R.id.txtText1);
}
Ahora vamos a explicar que hace cada uno de los métodos que hemos definido a
continuación:
 public void onClickGuardar(View v)
Vamos a estudiar su código:
public void onClickGuardar(View v){
String str = textBox.getText().toString();
try{
FileOutputStream fos = openFileOutput("textFile.txt", MODE_PRIVATE);
OutputStreamWriter osw = new OutputStreamWriter(fos);
// Escribimos el String en el archivo
osw.write(str);
osw.flush();
osw.close();
// Mostramos que se ha guardado
Toast.makeText(getBaseContext(), "Guardado", Toast.LENGTH_SHORT).show();
textBox.setText("");
}catch (IOException ex){
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
ex.printStackTrace();
}
}
En este método obtenemos el valor del EditText y lo guardamos en la variable de
referencia str, que es un String. A continuación abrimos un bloque try/catch, ya
que los procesos de I/O son operaciones arriesgadas y podemos obtener una
excepción del tipo IOException. Ahora creamos un objeto de la clase
FileOutputStream, el cual va a crear un archivo cuyo nombre será “textFile.txt” y lo
abrimos con el argumento MODE_PRIVATE, para que solo sea accesible por
nuestra aplicación. Seguidamente vamos a crear un objeto de la clase
OutputStreamReader el cual vamos a usar para escribir en el archivo. Una vez
que ya hayamos escrito todo, vamos a cerrar el objeto osw, pero no sin antes
ejecutar el método flush() para asegurarnos que todo ha sido grabado en el
archivo. Si todo ha ido bien, un mensaje gracias a la clase Toast será mostrado.
 public void onClickCargar(View v)
Vamos a ver su código para estudiar lo que hace:
public void onClickCargar(View v){
try{
FileInputStream fis = openFileInput("textFile.txt");
InputStreamReader isr = new InputStreamReader(fis);
char[] inputBuffer = new char[READ_BLOCK_SIZE];
String s = "";
int charRead;
while((charRead = isr.read(inputBuffer)) > 0){
// Convertimos los char a String
String readString = String.copyValueOf(inputBuffer, 0, charRead);
s += readString;
inputBuffer = new char[READ_BLOCK_SIZE];
}
// Establecemos en el EditText el texto que hemos leido
textBox.setText(s);
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
// Mostramos un Toast con el proceso completado
Toast.makeText(getBaseContext(), "Cargado", Toast.LENGTH_SHORT).show();
isr.close();
}catch (IOException ex){
ex.printStackTrace();
}
}
En este método vamos a cargar todo el texto que haya en el fichero para meterlo
en nuestro EditText. Para ello vamos a crear un objeto de la clase
FileInputStream, al cual le pasamos como argumento el nombre del archivo que
queremos abrir. A continuación vamos a crear otro objeto de la clase
InputStreamReader el cual acepta como argumento el objeto fis, de la clase
FileInputStream.
FileInputStream fis = openFileInput("textFile.txt");
InputStreamReader isr = new InputStreamReader(fis);
Ahora creamos un array de char[], al cual le vamos a establecer un tamaño de la
constante que hemos definido antes. En este caso vamos a leer en bloques de
100 caracteres, y luego lo volcaremos en un String. Para lograr esto, vamos a
crear un bucle que se repetirá mientras el array de caracteres sea mayor que 0,
cuando sea 0, significará que no tenemos nada mas que leer.
char[] inputBuffer = new char[READ_BLOCK_SIZE];
String s = "";
int charRead;
Dentro del bucle vamos a pasar el array de caracteres a un String, mediante el
método String.copyValueOf(), el cual como primer argumento acepta el array,
como segundo argumento por donde comenzará, y como último argumento la
cantidad de elementos que hemos leido. Ahora vamos a ir concatenando estas
String a la String que luego mostraremos.
while((charRead = isr.read(inputBuffer)) > 0){
// Convertimos los char a String
String readString = String.copyValueOf(inputBuffer, 0, charRead);
s += readString;
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
...
}
Por último, volvemos a reinicializar el array para volver a repetir el proceso
anterior:
inputBuffer = new char[READ_BLOCK_SIZE];
Al salir del bucle, vamos a establecer el texto que hemos leido en el EditText, y
avisamos mediante un mensaje que ha sido cargado.
// Establecemos en el EditText el texto que hemos leído
textBox.setText(s);
Después podemos ejecutar la aplicación:
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
1 Escribir Datos: aquí podemos Escribir los datos que sean necesarios.
2 Guardar Datos: Aquí podemos Guardar los Datos que se decidan agregar ya
que tengamos escritos los datos presionamos el boton “Guardar”
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
3 Despues e presionar el boton Guardar aparecera un mensaje que diga
“Guardado”
4 Para poder consultar un dato Presionamos el Botón “Cargar” Después aparecerá
un mensaje que diga Cargado.
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
5 Al haber cargado los datos podemos modificarlos y después guardando con el
botón Guardar. Al mismo tiempo podemos eliminar los datos.
6 después nos muestra el mensaje que los datos editados fueron guardados

Weitere ähnliche Inhalte

Andere mochten auch

Seguridad de la información
Seguridad de la información Seguridad de la información
Seguridad de la información
Mateo Panza
 
Aplicación de las telecomunicaciones
Aplicación de las telecomunicacionesAplicación de las telecomunicaciones
Aplicación de las telecomunicaciones
Edward Contreras
 
Mapa mental (seguridad informatica)
Mapa mental (seguridad informatica)Mapa mental (seguridad informatica)
Mapa mental (seguridad informatica)
Uber
 

Andere mochten auch (20)

A1 u1gb
A1 u1gbA1 u1gb
A1 u1gb
 
Normas
NormasNormas
Normas
 
Antenas
AntenasAntenas
Antenas
 
Interfaces
InterfacesInterfaces
Interfaces
 
Leccion4
Leccion4Leccion4
Leccion4
 
Seguridad de la información
Seguridad de la información Seguridad de la información
Seguridad de la información
 
Dialogo
DialogoDialogo
Dialogo
 
Tabla comparativa
Tabla comparativaTabla comparativa
Tabla comparativa
 
seguridadinformatica
seguridadinformaticaseguridadinformatica
seguridadinformatica
 
Formato
FormatoFormato
Formato
 
Tecnologias emergentes
Tecnologias emergentesTecnologias emergentes
Tecnologias emergentes
 
Manual edgar
Manual edgarManual edgar
Manual edgar
 
Mapa mental seguridad
Mapa mental seguridadMapa mental seguridad
Mapa mental seguridad
 
Iso 27000 evolución oct2015
Iso 27000 evolución oct2015Iso 27000 evolución oct2015
Iso 27000 evolución oct2015
 
Mapa conceptual seguridad informatica
Mapa conceptual   seguridad informaticaMapa conceptual   seguridad informatica
Mapa conceptual seguridad informatica
 
Aplicación de las telecomunicaciones
Aplicación de las telecomunicacionesAplicación de las telecomunicaciones
Aplicación de las telecomunicaciones
 
Mapa mental (seguridad informatica)
Mapa mental (seguridad informatica)Mapa mental (seguridad informatica)
Mapa mental (seguridad informatica)
 
Mapa conceptual de la Seguridad de la información
Mapa conceptual de la Seguridad de la informaciónMapa conceptual de la Seguridad de la información
Mapa conceptual de la Seguridad de la información
 
Mapa mental
Mapa mentalMapa mental
Mapa mental
 
Mapa mental Seguridad de la Información
Mapa mental Seguridad de la InformaciónMapa mental Seguridad de la Información
Mapa mental Seguridad de la Información
 

Ähnlich wie Datos

3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
luis freddy
 
Manual compilacion de java en dos
Manual compilacion de java en dosManual compilacion de java en dos
Manual compilacion de java en dos
alexisdario
 
Manual compilacion de java en dos
Manual compilacion de java en dosManual compilacion de java en dos
Manual compilacion de java en dos
alexisdario
 
Sockets en c
Sockets en cSockets en c
Sockets en c
MaShYy
 
preguntas java 17.docx
preguntas java 17.docxpreguntas java 17.docx
preguntas java 17.docx
CarlosNishimura1
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
Rokr02
 
Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenas
Juan Durango
 
Ejercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docxEjercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docx
ssuser2e6b96
 

Ähnlich wie Datos (20)

TEMAS DE JAVA DEL 11 AL 23
TEMAS DE JAVA DEL 11 AL 23TEMAS DE JAVA DEL 11 AL 23
TEMAS DE JAVA DEL 11 AL 23
 
Carro De Compras
Carro De ComprasCarro De Compras
Carro De Compras
 
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
 
Javascrip reynaldo gil
Javascrip reynaldo gilJavascrip reynaldo gil
Javascrip reynaldo gil
 
Java 1
Java 1Java 1
Java 1
 
Suarez l 2001 el paquete java io
Suarez l 2001 el paquete java ioSuarez l 2001 el paquete java io
Suarez l 2001 el paquete java io
 
Manual compilacion de java en dos
Manual compilacion de java en dosManual compilacion de java en dos
Manual compilacion de java en dos
 
Manual compilacion de java en dos
Manual compilacion de java en dosManual compilacion de java en dos
Manual compilacion de java en dos
 
Tema1oficial
Tema1oficialTema1oficial
Tema1oficial
 
Cplus
CplusCplus
Cplus
 
C++
C++C++
C++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Sockets en c
Sockets en cSockets en c
Sockets en c
 
preguntas java 17.docx
preguntas java 17.docxpreguntas java 17.docx
preguntas java 17.docx
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
 
Presentacion java
Presentacion javaPresentacion java
Presentacion java
 
Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenas
 
Archivossin
ArchivossinArchivossin
Archivossin
 
Ejercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docxEjercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docx
 
1 -programacion_oo
1  -programacion_oo1  -programacion_oo
1 -programacion_oo
 

Mehr von Edward Contreras (13)

Abstracción
AbstracciónAbstracción
Abstracción
 
Programación de aplicaciones
Programación de aplicacionesProgramación de aplicaciones
Programación de aplicaciones
 
Puntos de funcion
Puntos de funcionPuntos de funcion
Puntos de funcion
 
Edgar
EdgarEdgar
Edgar
 
Preguntas
PreguntasPreguntas
Preguntas
 
Manual edgar
Manual edgarManual edgar
Manual edgar
 
Vacations
VacationsVacations
Vacations
 
Weather
WeatherWeather
Weather
 
Dialogo
DialogoDialogo
Dialogo
 
Conversation
ConversationConversation
Conversation
 
Ingles
InglesIngles
Ingles
 
Trabajo de susana diccionario de datos
Trabajo de susana diccionario de datosTrabajo de susana diccionario de datos
Trabajo de susana diccionario de datos
 
A1 u1gb jorge_pancho_cristo_edgar.
A1 u1gb jorge_pancho_cristo_edgar.A1 u1gb jorge_pancho_cristo_edgar.
A1 u1gb jorge_pancho_cristo_edgar.
 

Datos

  • 1. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN Materia: Desarrollo de aplicaciones III Tema: Interfaz Almacenamiento De Datos. Nombre completo del Alumno : Edgar Eduardo Renovato Contreras, Grado: 5 Grupo: B Nombre del Docente : Eloy Contreras de Lira Fecha de entrega : 25/03/2014
  • 2. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN Después de que tengamos nuestro proyecto realizado se comenzará a trabajar. FilesActivity Una vez nuestro proyecto esté creado, vamos a tener una Activity la cuál hemos denominado FilesActivity.java, y su archivo layour en la carpeta res/layout con el nombre activity_files.xml. En este archivo encontraremos la interfaz gráfica de nuestra Activity, el cuál modificaremos para que sea como el siguiente: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".FilesActivity" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Introduzca algún texto" /> <EditText android:id="@+id/txtText1" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/btnGuardar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="onClickGuardar" android:text="Guardar" /> <Button android:id="@+id/btnCargar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="onClickCargar" android:text="Cargar" /> </LinearLayout> Podemos apreciar los siguientes elementos:
  • 3. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN  TextView:Este TextView se encargará de un proceso meramente descriptivo, para que introduzcamos algo en nuestro EditText.  EditText – @id/txtText1: En este EditText vamos a escribir un texto que posteriormente será guardado en el archivo.  Button – @id/btnGuardar: Cuando pulsemos este bóton, se ejecutará el método onClickGuardar(), recogiendo el texto del EditText y guardandolo en un fichero.  Button – @id/btnCargar: Cuando pulsemos este botón, se ejecutará el método onClickCargar(), donde se recogerá el texto que hay dentro del fichero y se establecerá en el EditText. Explicado esto, vamos a abrir nuestra Activity, llamada en mi caso FilesACtivity.java que se encuentra en el package sekth.droid.Files. package sekth.droid.Files; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.Toast; public class FilesActivity extends Activity { private EditText textBox; static final int READ_BLOCK_SIZE = 100; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_files); textBox = (EditText) findViewById(R.id.txtText1); } public void onClickGuardar(View v){ String str = textBox.getText().toString();
  • 4. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN try{ FileOutputStream fos = openFileOutput("textFile.txt", MODE_PRIVATE); OutputStreamWriter osw = new OutputStreamWriter(fos); // Escribimos el String en el archivo osw.write(str); osw.flush(); osw.close(); // Mostramos que se ha guardado Toast.makeText(getBaseContext(), "Guardado", Toast.LENGTH_SHORT).show(); textBox.setText(""); }catch (IOException ex){ ex.printStackTrace(); } } public void onClickCargar(View v){ try{ FileInputStream fis = openFileInput("textFile.txt"); InputStreamReader isr = new InputStreamReader(fis); char[] inputBuffer = new char[READ_BLOCK_SIZE]; String s = ""; int charRead; while((charRead = isr.read(inputBuffer)) > 0){ // Convertimos los char a String String readString = String.copyValueOf(inputBuffer, 0, charRead); s += readString; inputBuffer = new char[READ_BLOCK_SIZE]; } // Establecemos en el EditText el texto que hemos leido textBox.setText(s); // Mostramos un Toast con el proceso completado Toast.makeText(getBaseContext(), "Cargado", Toast.LENGTH_SHORT).show(); isr.close(); }catch (IOException ex){ ex.printStackTrace(); } }
  • 5. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN } Según vemos, hemos creado 2 variables de instancia, una es el EditText que usaremos de manera global en la Activity, y otra variable de instancia es un int llamado READ_BLOCK_SIZE, el cual explicaremos luego su función. En el método onCreate hemos inicializado la variable textBox, que al fín y al cabo es el EditText que hemos declarado anteriormente. Ahora ya podemos usar el EditText en cualquier parte de nuestra actividad. @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_files); textBox = (EditText) findViewById(R.id.txtText1); } Ahora vamos a explicar que hace cada uno de los métodos que hemos definido a continuación:  public void onClickGuardar(View v) Vamos a estudiar su código: public void onClickGuardar(View v){ String str = textBox.getText().toString(); try{ FileOutputStream fos = openFileOutput("textFile.txt", MODE_PRIVATE); OutputStreamWriter osw = new OutputStreamWriter(fos); // Escribimos el String en el archivo osw.write(str); osw.flush(); osw.close(); // Mostramos que se ha guardado Toast.makeText(getBaseContext(), "Guardado", Toast.LENGTH_SHORT).show(); textBox.setText(""); }catch (IOException ex){
  • 6. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ex.printStackTrace(); } } En este método obtenemos el valor del EditText y lo guardamos en la variable de referencia str, que es un String. A continuación abrimos un bloque try/catch, ya que los procesos de I/O son operaciones arriesgadas y podemos obtener una excepción del tipo IOException. Ahora creamos un objeto de la clase FileOutputStream, el cual va a crear un archivo cuyo nombre será “textFile.txt” y lo abrimos con el argumento MODE_PRIVATE, para que solo sea accesible por nuestra aplicación. Seguidamente vamos a crear un objeto de la clase OutputStreamReader el cual vamos a usar para escribir en el archivo. Una vez que ya hayamos escrito todo, vamos a cerrar el objeto osw, pero no sin antes ejecutar el método flush() para asegurarnos que todo ha sido grabado en el archivo. Si todo ha ido bien, un mensaje gracias a la clase Toast será mostrado.  public void onClickCargar(View v) Vamos a ver su código para estudiar lo que hace: public void onClickCargar(View v){ try{ FileInputStream fis = openFileInput("textFile.txt"); InputStreamReader isr = new InputStreamReader(fis); char[] inputBuffer = new char[READ_BLOCK_SIZE]; String s = ""; int charRead; while((charRead = isr.read(inputBuffer)) > 0){ // Convertimos los char a String String readString = String.copyValueOf(inputBuffer, 0, charRead); s += readString; inputBuffer = new char[READ_BLOCK_SIZE]; } // Establecemos en el EditText el texto que hemos leido textBox.setText(s);
  • 7. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN // Mostramos un Toast con el proceso completado Toast.makeText(getBaseContext(), "Cargado", Toast.LENGTH_SHORT).show(); isr.close(); }catch (IOException ex){ ex.printStackTrace(); } } En este método vamos a cargar todo el texto que haya en el fichero para meterlo en nuestro EditText. Para ello vamos a crear un objeto de la clase FileInputStream, al cual le pasamos como argumento el nombre del archivo que queremos abrir. A continuación vamos a crear otro objeto de la clase InputStreamReader el cual acepta como argumento el objeto fis, de la clase FileInputStream. FileInputStream fis = openFileInput("textFile.txt"); InputStreamReader isr = new InputStreamReader(fis); Ahora creamos un array de char[], al cual le vamos a establecer un tamaño de la constante que hemos definido antes. En este caso vamos a leer en bloques de 100 caracteres, y luego lo volcaremos en un String. Para lograr esto, vamos a crear un bucle que se repetirá mientras el array de caracteres sea mayor que 0, cuando sea 0, significará que no tenemos nada mas que leer. char[] inputBuffer = new char[READ_BLOCK_SIZE]; String s = ""; int charRead; Dentro del bucle vamos a pasar el array de caracteres a un String, mediante el método String.copyValueOf(), el cual como primer argumento acepta el array, como segundo argumento por donde comenzará, y como último argumento la cantidad de elementos que hemos leido. Ahora vamos a ir concatenando estas String a la String que luego mostraremos. while((charRead = isr.read(inputBuffer)) > 0){ // Convertimos los char a String String readString = String.copyValueOf(inputBuffer, 0, charRead); s += readString;
  • 8. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ... } Por último, volvemos a reinicializar el array para volver a repetir el proceso anterior: inputBuffer = new char[READ_BLOCK_SIZE]; Al salir del bucle, vamos a establecer el texto que hemos leido en el EditText, y avisamos mediante un mensaje que ha sido cargado. // Establecemos en el EditText el texto que hemos leído textBox.setText(s); Después podemos ejecutar la aplicación:
  • 9. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN 1 Escribir Datos: aquí podemos Escribir los datos que sean necesarios. 2 Guardar Datos: Aquí podemos Guardar los Datos que se decidan agregar ya que tengamos escritos los datos presionamos el boton “Guardar”
  • 10. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN 3 Despues e presionar el boton Guardar aparecera un mensaje que diga “Guardado” 4 Para poder consultar un dato Presionamos el Botón “Cargar” Después aparecerá un mensaje que diga Cargado.
  • 11. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN 5 Al haber cargado los datos podemos modificarlos y después guardando con el botón Guardar. Al mismo tiempo podemos eliminar los datos. 6 después nos muestra el mensaje que los datos editados fueron guardados