Sie sind auf Seite 1von 14

Almacenamiento interno (archivos internos)

Android proporciona muchos tipos de almacenamiento para aplicaciones que


almacenan sus datos. Estos lugares de almacenamiento se comparten las
preferencias, almacenamiento interno y externo, de almacenamiento SQLite, y de
almacenamiento a través de conexión de red.
En este capítulo vamos a mirar el almacenamiento interno. El almacenamiento
interno es el almacenamiento de los datos privados en la memoria del dispositivo.
De forma predeterminada estos archivos son privados y se accede sólo por su
aplicación y se eliminan, cuando el usuario elimine su aplicación.

La escritura de archivos
Para utilizar el almacenamiento interno para escribir algunos datos en el archivo,
llame al método openFileOutput () con el nombre del archivo y el modo. El modo
puede ser privado, público, etc. Su sintaxis es la siguiente -

FileOutputStream fOut = openFileOutput("file name here",MODE_WOR


LD_READABLE);

El método openFileOutput () devuelve una instancia de FileOutputStream. Así que


lo reciba en el objeto de FileInputStream. Después de que se puede llamar al
método de escritura para escribir datos en el archivo. Su sintaxis es la siguiente -

String str = "data";


fOut.write(str.getBytes());
fOut.close();

Al leer el archivo
Con el fin de leer el archivo que acaba de crear, llame al método openFileInput ()
con el nombre del archivo. Devuelve una instancia de FileInputStream. Su sintaxis
es la siguiente -

FileInputStream fin = openFileInput(file);

Después de eso, se puede llamar al método de lectura para leer un carácter a la


vez desde el archivo y luego se puede imprimir. Su sintaxis es la siguiente -
int c;
String temp="";
while( (c = fin.read()) != -1){
temp = temp + Character.toString((char)c);
}

//string temp contains all the data of the file.


fin.close();

Aparte de la de los métodos de escritura y cerrar, hay otros métodos proporcionados


por la clase FileOutputStream de mejores archivos de escritura. Estos métodos
se enumeran a continuación -

No Método y Descripción
Señor

1 FileOutputStream (archivo de archivos, datos anexados booleano)

Este método construye un nuevo FileOutputStream que escribe en el archivo.

2 getChannel ()
Este método devuelve un sólo escritura FileChannel que comparte su posición
con esta corriente

3 getFD ()
Este método devuelve el descriptor de archivos subyacente

4 escribir (byte [] buffer, int byteOffset, int byteCount)


Este método escribe bytes de recuento de la memoria intermedia matriz de bytes comenzando en
corriente de posición

Aparte de los métodos de lectura y cerrar, hay otros métodos proporcionados por la
clase FileInputStream para mejores archivos de lectura. Estos métodos se
enumeran a continuación -

No Método y Descripción
Señor
1 disponible()

Este método devuelve una estimación del número de bytes que se pueden leer o saltadas sin
bloquear
por más caracteres

2 getChannel ()
Este método devuelve un solo lectura FileChannel que comparte su posición con esta corriente

3 getFD ()
Este método devuelve el descriptor de archivos subyacente

4 leer (byte [] buffer, int byteOffset, int byteCount)


Este método lee en la mayoría de bytes de longitud de esta corriente y
los almacena en la matriz de bytes b comenzando por offset

Ejemplo
He aquí un ejemplo que demuestra el uso de la memoria interna para almacenar y
leer archivos. Se crea una aplicación de almacenamiento básica que le permite leer
y escribir desde el almacenamiento interno.
Para experimentar con este ejemplo, puede ejecutar esto en un dispositivo real o en
un emulador.

Pasos Descripción

1 Que va a utilizar Android Studio IDE para crear una aplicación de Android bajo una
com.example.sairamkrishna.myapplication paquete. Mientras que la creación de este
proyecto, asegúrese de que se dirigen a SDK y compilar con la última versión de
Android SDK para utilizar niveles más altos de las API.

2 Modificar el archivo / src MainActivity.java para agregar el código necesario.

3 Modificar la res / layout / activity_main añadir componentes XML respectivos


4 Ejecutar la aplicación y elegir un dispositivo Android que ejecutan e instalar la
aplicación en él y verificar los resultados

A continuación se muestra el contenido del fichero de actividad src /


MainActivity.java principal modificada.

package com.example.sairamkrishna.myapplication;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class MainActivity extends Activity {


Button b1,b2;
TextView tv;
EditText ed1;

String data;
private String file = "mydata";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1=(Button)findViewById(R.id.button);
b2=(Button)findViewById(R.id.button2);

ed1=(EditText)findViewById(R.id.editText);
tv=(TextView)findViewById(R.id.textView2);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
data=ed1.getText().toString();

try {
FileOutputStream fOut = openFileOutput(file,MODE_
WORLD_READABLE);
fOut.write(data.getBytes());
fOut.close();
Toast.makeText(getBaseContext(),"file saved",Toas
t.LENGTH_SHORT).show();
}

catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});

b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
FileInputStream fin = openFileInput(file);
int c;
String temp="";

while( (c = fin.read()) != -1){


temp = temp + Character.toString((char)c);
}
tv.setText(temp);
Toast.makeText(getBaseContext(),"file read",Toast
.LENGTH_SHORT).show();
}
catch(Exception e){
}
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if
it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so l
ong
// as you specify a parent activity in AndroidManifest.xml
.

int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}

El siguiente es el contenido modificado de la resolución de XML / diseño


/ activity_main.xml.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/re
s/android"
xmlns:tools="http://schemas.android.com/tools" android:layout
_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@di
men/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools
:context=".MainActivity">

<TextView android:text="Internal storage" android:layout_widt


h="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textview"
android:textSize="35dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tutorials point"
android:id="@+id/textView"
android:layout_below="@+id/textview"
android:layout_centerHorizontal="true"
android:textColor="#ff7aff24"
android:textSize="35dp" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save"
android:id="@+id/button"
android:layout_alignParentBottom="true"
android:layout_alignLeft="@+id/textView"
android:layout_alignStart="@+id/textView" />

<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:hint="Enter Text"
android:focusable="true"
android:textColorHighlight="#ff7eff15"
android:textColorHint="#ffff25e6"
android:layout_below="@+id/imageView"
android:layout_alignRight="@+id/textView"
android:layout_alignEnd="@+id/textView"
android:layout_marginTop="42dp"
android:layout_alignLeft="@+id/imageView"
android:layout_alignStart="@+id/imageView" />

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@drawable/abc"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="load"
android:id="@+id/button2"
android:layout_alignTop="@+id/button"
android:layout_alignRight="@+id/editText"
android:layout_alignEnd="@+id/editText" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Read"
android:id="@+id/textView2"
android:layout_below="@+id/editText"
android:layout_toLeftOf="@+id/button2"
android:layout_toStartOf="@+id/button2"
android:textColor="#ff5bff1f"
android:textSize="25dp" />

</RelativeLayout>

A continuación se presenta el contenido de la resolución / valores /


string.xml.

<resources>
<string name="app_name">My Application</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
</resources>

A continuación se presenta el contenido del archivo AndroidManifest.xml.

<?xml version="1.0" encoding="utf-8"?>


<manifest xmlns:android="http://schemas.android.com/apk/res/andr
oid"
package="com.example.sairamkrishna.myapplication" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

<activity
android:name=".MainActivity"
android:label="@string/app_name" >

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUN
CHER" />
</intent-filter>
,
</activity>

</application>
</manifest>

Vamos a tratar de ejecutar nuestra aplicación de almacenamiento que acaba de


modificar. Asumo que había creado su AVD mientras se hace la configuración
del entorno. Para ejecutar la aplicación desde Android Studio, abra uno de los
archivos de la actividad de su proyecto y haga clic en Ejecutar icono de la barra
de herramientas. Android Studio instala la aplicación en su AVD y la inicia y si todo
está bien con su puesta a punto y la aplicación, se mostrará siguiente ventana del
emulador -

Ahora lo que hay que hacer es introducir cualquier texto en el campo. Por ejemplo,
he entrado un poco de texto. Presione el botón de guardar. La siguiente notificación
que aparecería en AVD -
Ahora bien, cuando se pulsa el botón de carga, la aplicación leerá el archivo y
mostrar los datos. En el caso de nuestra, los datos siguientes serían devueltos -
Tenga en cuenta que en realidad se puede ver este archivo al cambiar a la pestaña
DDMS. En DDMS, seleccione Explorador de archivos y navegar por este camino.

tools>android>android device Monitor

Esto también se ha mostrado en la imagen de abajo.

Das könnte Ihnen auch gefallen