Simpan dan Baca File Teks Pada External Storage di Android Studio

Tutorial Cara Simpan dan Baca External Storage di Android Studio

Halo semuanya, pada artikel ini kita akan belajar Cara Simpan dan Baca File Teks Pada External Storage di Android Studio.

Pada artikel sebelumnya, saya sudah membagikan tutorial cara simpan dan baca file teks pada Internal Storage, dan sekarang kita akan belajar cara menyimpannya pada Eksternal Storage

External Storage atau Penyimpanan eksternal juga dapat menyimpan data aplikasi seperti kartu SD. Tidak ada keamanan yang diberlakukan pada file yang Anda simpan ke penyimpanan eksternal. Secara umum, ada dua jenis penyimpanan eksternal:

Semua aplikasi dapat membaca dan menulis file yang ditempatkan pada Eksternal Storage dan pengguna dapat menghapusnya. Jadi, pada artikel ini kita akan belajar cara membuat aplikasi android untuk menyimpan file teks ke penyimpanan eksternal dan membacanya di Android Studio.

Tutorial Cara Simpan dan Baca File Teks Pada External Storage di Android Studio

Buatlah projek Android Studio baru dengan informasi seperti pada tabel dibawah ini:

Application Name:External App
Package Name:com.androidrion.externalapp
Language:Java
Minimum SDK:API 16: Android 4.1 (Jelly Bean)

Daftar file xml layout yang digunakan dalam projek ini:

  1. activity_main.xml

Daftar file java activity yang digunakan dalam projek ini:

  1. MainActivity.java

Daftar permission yang digunakan dalam projek ini:

  1. WRITE_EXTERNAL_STORAGE
  2. READ_EXTERNAL_STORAGE

Dibawah ini adalah langkah-langkah dalam pembuatan aplikasi External App.

Langkah 1: File AndroidManifest.xml

Buka file AndroidManifest.xml dalam folder app/manifests lalu tambahkan permission dibawah ini:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Dibawah ini adalah kode lengkap untuk file AndroidManifest.xml

app/manifests/AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.androidrion.externalapp">

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.ExternalApp">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Langkah 2: Buat layout pada file activity_main.xml

Buka file activiy_main.xml dalam folder res>layout lalu tambahkan komponen EditText, Button dan TextView. Berikut ini adalah kode lengkap untuk file activity_main.xml

app/res/layout/activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    android:padding="16dp"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Aplikasi Catatan"
        android:textAppearance="@style/TextAppearance.AppCompat.Headline" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Penyimpanan eksternal"
        android:textAppearance="@style/TextAppearance.AppCompat.Subhead" />

    <com.google.android.material.textfield.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp">

        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/input_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="top"
            android:hint="Tulis catatan disini"
            android:inputType="textMultiLine"
            android:minLines="5" />
    </com.google.android.material.textfield.TextInputLayout>

    <androidx.appcompat.widget.LinearLayoutCompat
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btn_simpan"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="SIMPAN CATATAN" />

        <View
            android:layout_width="16dp"
            android:layout_height="match_parent" />

        <Button
            android:id="@+id/btn_baca"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="LIHAT CATATAN" />
    </androidx.appcompat.widget.LinearLayoutCompat>

    <TextView
        android:id="@+id/text_catatan"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="32dp"
        android:textAppearance="@style/TextAppearance.AppCompat.Subhead" />

</LinearLayout>

Langkah 3: Tambahkan kode pada file MainActivity.java

Buka file MainActivity.java dalam folder java lalu deklarasikan dari tiap-tiap widget atau komponen yang telah kita tambahkan pada file xml layout tadi. Berikut ini adalah kode lengkap untuk file MainActivity.java

app/java/com.androidrion.externalapp/MainActivity.java

package com.androidrion.externalapp;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.os.Environment;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.material.textfield.TextInputEditText;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class MainActivity extends AppCompatActivity {

    TextInputEditText inputText;
    Button btnSimpan, btnLihat;
    TextView textCatatan;

    File myExternalFile;
    String myData = "";

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

        inputText = findViewById(R.id.input_text);
        btnSimpan = findViewById(R.id.btn_simpan);
        btnLihat = findViewById(R.id.btn_baca);
        textCatatan = findViewById(R.id.text_catatan);

        if (!isExternalStorageAvailable() || isExternalStorageReadOnly()) {
            btnSimpan.setEnabled(false);
        } else {
            String filename = "AndroidRion.txt";
            String filepath = "Penyimpanan_Aplikasi";
            myExternalFile = new File(getExternalFilesDir(filepath), filename);
        }

        btnSimpan.setOnClickListener(view -> {
            if (inputText.getText().toString().isEmpty()) {
                Toast.makeText(this, "Mohon masukkan catatan", Toast.LENGTH_SHORT).show();
            } else {
                try {
                    FileOutputStream fos = new FileOutputStream(myExternalFile);
                    fos.write(inputText.getText().toString().getBytes());
                    fos.close();

                    Toast.makeText(getBaseContext(), "Catatan berhasil disimpan di " + myExternalFile, Toast.LENGTH_LONG).show();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                inputText.setText("");
            }
        });

        btnLihat.setOnClickListener(view -> {
            try {
                FileInputStream fis = new FileInputStream(myExternalFile);
                DataInputStream in = new DataInputStream(fis);
                BufferedReader br = new BufferedReader(new InputStreamReader(in));
                String strLine;
                while ((strLine = br.readLine()) != null) {
                    myData = myData + strLine;
                }
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            textCatatan.setText(myData);
        });

    }

    private static boolean isExternalStorageReadOnly() {
        String extStorageState = Environment.getExternalStorageState();
        return Environment.MEDIA_MOUNTED_READ_ONLY.equals(extStorageState);
    }

    private static boolean isExternalStorageAvailable() {
        String extStorageState = Environment.getExternalStorageState();
        return Environment.MEDIA_MOUNTED.equals(extStorageState);
    }

}

Langkah 4: Jalankan Projek

Ketika aplikasi berhasil dijalankan, kalian akan melihat adanya teks dan dua tombol yang bertuliskan SIMPAN CATATAN dan LIHAT CATATAN. Jika kalian menekan tombol SIMPAN CATATAN tanpa menuliskan pada kolom yang telah disediakan, maka aplikasi akan menampilkan toast yang bertuliskan “Mohon masukkan catatan”. Dan jika kalian mengklik tombol BACA CATATAN tanpa melakukan penyimpanan, maka aplikasi akan menampilkan toast “Tidak ada catatan”. Jika kode diatas, tidak terjadi error atau kesalahan. Maka aplikasi akan terlihat seperti pada gambar dibawah ini.

AKHIR KATA

Itulah tadi tutorial singkat dan mudah Cara Simpan Dan Baca File Teks Pada External Storage di Android Studio. Tutorial diatas cukup lumayan mudah untuk mengasah kita dalam hal koding karena kode diatas telah saya tambahkan logika yang sering di gunakan oleh banyak aplikasi.

Jika kalian mengalam kendala saat melakukan tutorial diatas, silahkan berkomentar dibawah pada artikel ini. Dan jangan lupa juga untuk Subscribe Chanel YouTube Android Rion – Tutorial agar kalian bisa mendapatkan tutorial versi videonya. Semoga tutorial ini bisa membantu kalian. Terima kasih. 🙂

Download Projek

Klik tombol dibawah ini untuk mendapatkan projek pada artikel ini

Exit mobile version