Android Tutorial: Nutzung des Internen Speichers zur Datenverwaltung

In diesem Beitrag schauen wir uns den internen Speicher von Android an. Android bietet verschiedene strukturierte Möglichkeiten, Daten zu speichern. Dazu gehören:

    • Shared Preferences
    • Interner Speicher
    • Externer Speicher
    • SQLite Speicher
    • Netzwerkverbindungsspeicher (Cloud)

Android Interner Speicher

Der interne Speicher von Android ist der Bereich für private Daten auf dem Gerätespeicher. Standardmäßig sind gespeicherte und geladene Dateien im internen Speicher nur für die Anwendung sichtbar und andere Anwendungen haben keinen Zugriff darauf. Wenn der Benutzer die Anwendung deinstalliert, werden die damit verbundenen Dateien ebenfalls entfernt. Beachten Sie jedoch, dass einige Benutzer ihre Android-Telefone rooten und damit Superuser-Zugriff erhalten, wodurch sie alle Dateien lesen und schreiben können.

Lesen und Schreiben von Textdateien im internen Speicher

Android bietet die Methoden openFileInput und openFileOutput aus den Java I/O-Klassen, um Lese- und Schreibströme zu lokalen Dateien zu verwalten.

      • openFileOutput(): Diese Methode wird verwendet, um eine Datei zu erstellen und zu speichern. Die Syntax lautet:

        FileOutputStream fOut = openFileOutput("dateiname", Context.MODE_PRIVATE);

        Diese Methode gibt eine Instanz von FileOutputStream zurück. Anschließend kann die write-Methode aufgerufen werden, um Daten in die Datei zu schreiben:

        
        
        String str = "Testdaten";
        fOut.write(str.getBytes());
        fOut.close();

      • openFileInput(): Diese Methode wird verwendet, um eine Datei zu öffnen und zu lesen. Sie gibt eine Instanz von FileInputStream zurück. Die Syntax lautet:

        FileInputStream fin = openFileInput("dateiname");

        Anschließend kann die read-Methode aufgerufen werden, um Zeichen für Zeichen aus der Datei zu lesen:

        int c;
        String temp = "";
        while ((c = fin.read()) != -1) {
            temp += Character.toString((char) c);
        }
        fin.close();

        In diesem Code enthält die Variable temp alle Daten der Datei.

Beachten Sie: Diese Methoden akzeptieren keine Dateipfade (z.B. path/to/file.txt), sondern nur einfache Dateinamen.

Beispiel für ein Android-Projekt zur Nutzung des internen Speichers

Die XML-Layoutdatei (activity_main.xml) enthält ein EditText-Feld zum Schreiben von Daten in die Datei sowie einen Schreib- und einen Lesebutton. Die

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Android Read and Write Text from/to a File"
        android:textStyle="bold"
        android:textSize="28sp" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:minLines="5">
        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Write Text into File"
        android:onClick="WriteBtn" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Read Text From file"
        android:onClick="ReadBtn" />
</RelativeLayout>

Die MainActivity enthält die Implementierung des Lese- und Schreibvorgangs:

package com.journaldev.internalstorage;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class MainActivity extends Activity {

    EditText textmsg;
    static final int READ_BLOCK_SIZE = 100;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textmsg = (EditText) findViewById(R.id.editText1);
    }

    public void WriteBtn(View v) {
        try {
            FileOutputStream fileout = openFileOutput("mytextfile.txt", MODE_PRIVATE);
            OutputStreamWriter outputWriter = new OutputStreamWriter(fileout);
            outputWriter.write(textmsg.getText().toString());
            outputWriter.close();
            Toast.makeText(getBaseContext(), "File saved successfully!", Toast.LENGTH_SHORT).show();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void ReadBtn(View v) {
        try {
            FileInputStream fileIn = openFileInput("mytextfile.txt");
            InputStreamReader InputRead = new InputStreamReader(fileIn);
            char[] inputBuffer = new char[READ_BLOCK_SIZE];
            String s = "";
            int charRead;
            while ((charRead = InputRead.read(inputBuffer)) > 0) {
                String readstring = String.copyValueOf(inputBuffer, 0, charRead);
                s += readstring;
            }
            InputRead.close();
            textmsg.setText(s);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Eine Toast-Nachricht wird angezeigt, wenn die Daten erfolgreich im internen Speicher gespeichert wurden. Beim Lesen werden die Daten im EditText angezeigt.

Um die Datei zu sehen, öffnen Sie den Android Device Monitor über Tools -> Android -> Android Device Monitor. Die Datei befindet sich im Ordner data -> data -> {Paketname} -> files.

Quelle: digitalocean.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

VeraCrypt unter Ubuntu 24.04 installieren & nutzen

Security, Tutorial
VeraCrypt unter Ubuntu 24.04 installieren – Schritt-für-Schritt-Anleitung VeraCrypt ist eine kostenlose Open-Source-Verschlüsselungslösung, mit der sich vertrauliche Daten wie Dateien, Ordner und ganze Laufwerke absichern lassen. Um diese leistungsstarke Sicherheitssoftware optimal…