Tutorials  /  JavaScript

Android Tutorial: Nutzung des Internen Speichers zur Datenverwaltung

Ccentron Redaktion · September 2024 ·3 Min. Lesezeit ·JavaScript, Tutorial

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.

VM

Passende Infrastruktur bei centron

Node-Anwendungen wollen deployt werden: ccloud³ VMs mit vollem Root-Zugriff ab 3,12 € im Monat – oder gleich als Managed Server, wenn der Betrieb nicht bei Ihnen liegen soll. Cloud Server mieten →

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:
        Code
        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:

        Code
        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:
        Code
        FileInputStream fin = openFileInput("dateiname");
        Anschließend kann die read-Methode aufgerufen werden, um Zeichen für Zeichen aus der Datei zu lesen:

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

        Code
        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

Code
<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:

Go
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.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie JavaScript
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren