codestory

Die Anleitung zu Android Internal Storage

  1. Android Internal Storage
  2. Zum Beispiel: die Daten in der internalen Speicherung lesen und schreiben
  3. Phụ lục: Thiết kế giao diện

1. Android Internal Storage

Android Internal Storage: ist ein Ort, wo speichert die individuellen Daten jeder Applikation. Diese Daten werden gespeichert und für die eigene Applikation benutzt. Die anderen Applikation können nicht zugreifen. Wenn die Applikation normaleweiser aus dem Gerät Android uninstalliert wird, werden die betreffenden Datenfile auch gelöscht
Ein noch mehr Merkmal beim Umgang mit der Datenfile in der internen Speicherung (Internal Storage) ist, dass Sie mit einem einfachen Filename bearbeiten können, und mit einer File mit einen Pfad nicht bearbeiten
Öffnen Sie die File des Daten-Aufschreiben
// Is a simple file name.
// Note!! Do not allow the path.
String simpleFileName ="note.txt";


// Open Stream to write file.
FileOutputStream out = openFileOutput(simpleFileName, MODE_PRIVATE);
Sie haben 4 Options zum Aufschreibensmodis:
Modus zur File-erstellung
Die Bezeichnung
MODE_PRIVATE
Das ist Default-Modus, die geschriebene File wird nur von der Applikation, die sie erstellt, benutzt oder mit dem gleichen User ID getauscht
MODE_APPEND
Das Modus zum Hinzufügen der Daten in die FIle wenn sie existiert
MODE_ENABLE_WRITE_AHEAD_LOGGING
MODE_WORLD_READABLE
Der Modus ist sehr gefährlich. Er ist ein Sicherheitsloch im Android,es ist am besten, nicht zu benutzen,. Sie können die anderen alternativen Technik
  • ContentProvider
  • BroadcastReceiver
  • Service
MODE_WORLD_WRITEABLE
Der Modus ist sehr gefährlich. Er ist ein Sicherheitsloch im Android,es ist am besten, nicht zu benutzen,. Sie können die anderen alternativen Technik
  • ContentProvider
  • BroadcastReceiver
  • Service
MODE_MULTI_PROCESS
der Modus zum Multi-Prozess, der in die File schreiben darf. Aber es ist empfohlen, den Modus nicht zu benutzen denn er funktioniert in einigen Version von Android nicht. Sie können die anderen alternative Technik benutzen, zum Beispiel:
  • ContentProvider
Öffnen Sie die File zum Lesen der Daten
// Is a simple file name.
// Note!! Do not allow the path.
String simpleFileName = "note.txt";

// Open stream to read file.
FileInputStream in = this.openFileInput(simpleFileName);

2. Zum Beispiel: die Daten in der internalen Speicherung lesen und schreiben

Jetzt können Sie ein Beispiel zum Aufschreiben der Daten in der File, die im inneren Speicher liegt, und zum Lesen des Daten der File, durch
Erstellen Sie ein Projekt mit dem Name von InternalStorageDemo.
  • File > New > New Project > Empty Activity
    • Name: InternalStorageDemo
    • Package name: org.o7planning.internalstoragedemo
    • Language: Java
Die Interface der Applikation
The interface of this application is very simple, if you are interested in the steps to create it, see the appendix at the end of the article.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/editText"
        android:layout_width="0dp"
        android:layout_height="122dp"
        android:layout_marginStart="21dp"
        android:layout_marginLeft="21dp"
        android:layout_marginTop="20dp"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        android:ems="10"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button_save"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="44dp"
        android:text="Save to File"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editText" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="0dp"
        android:layout_height="91dp"
        android:layout_marginStart="29dp"
        android:layout_marginLeft="29dp"
        android:layout_marginTop="29dp"
        android:layout_marginEnd="21dp"
        android:layout_marginRight="21dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button_save" />

    <Button
        android:id="@+id/button_read"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="38dp"
        android:text="Read File"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
package org.o7planning.internalstoragedemo;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;

public class MainActivity extends AppCompatActivity {

    private Button saveButton;
    private Button readButton;

    private TextView textView;
    private EditText editText;

    // Is a simple file name.
    // Note!! Do not allow the path.
    private String simpleFileName = "note.txt";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        this.saveButton = (Button) this.findViewById(R.id.button_save);
        this.readButton = (Button) this.findViewById(R.id.button_read);
        this.textView = (TextView) this.findViewById(R.id.textView);
        this.editText = (EditText) this.findViewById(R.id.editText);

        this.saveButton.setOnClickListener(new Button.OnClickListener() {

            @Override
            public void onClick(View v) {
                saveData();
            }
        });

        this.readButton.setOnClickListener(new Button.OnClickListener() {

            @Override
            public void onClick(View v) {
                readData();
            }
        });
    }


    private void saveData() {
        String data = this.editText.getText().toString();
        try {
            // Open Stream to write file.
            FileOutputStream out = this.openFileOutput(simpleFileName, MODE_PRIVATE);
            // Ghi dữ liệu.
            out.write(data.getBytes());
            out.close();
            Toast.makeText(this,"File saved!",Toast.LENGTH_SHORT).show();
        } catch (Exception e) {
            Toast.makeText(this,"Error:"+ e.getMessage(),Toast.LENGTH_SHORT).show();
        }
    }

    private void readData() {
        try {
            // Open stream to read file.
            FileInputStream in = this.openFileInput(simpleFileName);

            BufferedReader br= new BufferedReader(new InputStreamReader(in));

            StringBuilder sb= new StringBuilder();
            String s= null;
            while((s= br.readLine())!= null)  {
                sb.append(s).append("\n");
            }
            this.textView.setText(sb.toString());

        } catch (Exception e) {
            Toast.makeText(this,"Error:"+ e.getMessage(),Toast.LENGTH_SHORT).show();
        }
    }

}
Bei der Benutzung "Android Device Manager" können Sie die File, die im System erstellt werden, sehen
See more about "Device File Explorer":

3. Phụ lục: Thiết kế giao diện

Steps to design the interface of the application in this article:
Add Button"Save to File":
Add a TextView:
Add Button"Read File":
Set ID, Text for components on the interface:

Anleitungen Android

Show More