Cara Menyimpan File Ke Internal dan External Storage Android


Assalamualaikum Warahmatullahi Wabarakatuh.

Pada tutorial ini kita akan belajar, Cara Menyimpan File Di Internal dan External Storage Android, pembahasan yang akan saya ajarkan adalah langkah-langkah penggunaan Internal dan External Storage, Contoh pemakaian Internal dan External Storage dan juga kapan memilih Internal atau External Storage pada Aplikasi Android.


Ada beberapa kondisi dimana kita harus memilih antara penyimpanan Internal dan External pada Apliaksi Android yang akan kita buat, kalian juga dapat menggunakan keduanya pada aplikasi tersebur. Berikut merupakan kondisi dimana kita harus memilih Penyimpanan Internal atau External Storage.

Internal Storage:
  • Ini selalu tersedia.
  • File yang disimpan di sini hanya bisa diakses oleh aplikasi itu sendiri.
  • Bila pengguna mencopot/uninstall pemasangan aplikasi, sistem akan membuang semua file aplikasi tersebut dari penyimpanan internal.
  • Penyimpanan internal digunakan juga kita ingin memastikan bahwa pengguna maupun aplikasi lain tidak bisa mengakses file tersebut.

External Storage:
  • Penyimpanan ini tidak selalu tersedia, karena pengguna bisa memasang penyimpanan eksternal sebagai penyimpanan USB dan dalam beberapa kasus melepasnya dari perangkat.
  • Penyimpanan ini bisa dibaca di seluruh dunia, sehingga file yang disimpan di sini bisa dibaca di luar kontrol kita.
  • Bila pengguna mencopot pemasangan aplikasi kita, sistem akan membuang file aplikasi kita dari sini hanya jika kita menyimpannya dalam direktori dari getExternalFilesDir().
  • Penyimpanan eksternal digunakan untuk file yang tidak memerlukan pembatasan akses dan untuk file yang ingin kita gunakan bersama aplikasi lain atau memperbolehkan pengguna mengaksesnya dengan komputer.

Itulah beberapa fungsi dan juga peranan dari Internal dan External Storage didalam Aplikasi Android. Untuk penjelasan lebih lanjut, mari kita simak tutorial berikut ini.

Materi lainnya yang direkomendasikan:

A.Internal Storage

1) Buka aplikasi Android Studio kalian, Buat Project Baru.

2) Disini kita akan mendesain layout pada activiy_main.xml, pada layout tersebut kita akan menambahkan sebuah widget atau view seperti EditText dan Button.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="8dp"
    android:orientation="vertical"
    android:background="#FFF5F5F5"
    tools:context="android.cianjur.developer.net.basicandroid.MainActivity">

    <EditText
        android:id="@+id/input_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Masukan Data"
        android:inputType="textPersonName" />

    <Button
        android:id="@+id/save_internal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Simpan ke Internal" />

    <Button
        android:id="@+id/save_external"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Simpan ke External" />

</LinearLayout>
View:


3) Selanjutnya buka file MainActivity.java pada project kalian, pertama kita akan memasukan source code untuk Internal Storage.
package android.cianjur.developer.net.basicandroid;

/*
 Dibuat Oleh WILDAN M ATHOILLAH
 */

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.io.FileOutputStream;

public class MainActivity extends AppCompatActivity{

    private Button Internal, External;
    private EditText InputData;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        InputData = findViewById(R.id.input_data);
        Internal = findViewById(R.id.save_internal);
        External = findViewById(R.id.save_external);

        Internal.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String setData = InputData.getText().toString();
                //Digunakan untuk membuat dan menulis File/Data pada Penyimpanan
                FileOutputStream fileOutputStream;
                try {
                    //Membuat Berkas Baru dengan mode Private
                    fileOutputStream = openFileOutput("DataSaya", Context.MODE_PRIVATE);

                    //Menulis Data Baru dan Mengkonversinya kedalam bentuk byte
                    fileOutputStream.write(setData.getBytes());

                    //Menutup FileOutputStream
                    fileOutputStream.close();

                    Toast.makeText(getApplicationContext(), "Data Disimpan di Internal", Toast.LENGTH_SHORT).show();
                }catch (Exception ex){
                    ex.printStackTrace();
                }
            }
        });
    }
}
Penjelasan:

FileOutStream digunakan untuk membuat dan menulis File atau Data baru pada penyimpanan, dengan menggunakan fungsi openFileOutput, pada fungsi tersebut kita membuat berkas baru dengan nama "DataSaya" yang mempunyai akses Private, yang artinya file tersebut hanya bisa diakses oleh aplikasi itu sendiri.

Untuk menambahkan data/nilai pada berkas "DataSaya", kita dapat menggunakan fungsi write(), lalu kita harus mengkonversinya kedalam bentuk Byte, menggunakan fungsi getByte().

Terakhir, kita menutup FileOutStream menggunakan fungsi close().

Untuk melihat datanya, caranya jalankan project tersebut menggunakan Emulator, lalu buka Android Device Emulator, seperti berikut ini:


Jangan lupa untuk mencentang Enable ADB Interation. Selanjutnya buka direktori data > data > (Nama Package pada Aplikasi Kita) > files.

B.External Storage

1) Masukan kedua permission berikut ini, digunakan untuk memperoleh izin, agar aplikasi dapat menulis dan membaca file External Storage. Buka file androidManifest (pada direktori main).
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2) Buka MainActivity.java kalian, tambahkan source code berikut ini pada method onCreate().
External.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              //Digunakan Untuk Mengecek Apakah Tersebut Peyimpanan External atau Tidak
              String state = Environment.getExternalStorageState();
              if (Environment.MEDIA_MOUNTED.equals(state)){
                  //Digunakan Untuk Mengecek Lokasi Penyimpanan Direktori di Memory External
                  File dirExternal = Environment.getExternalStorageDirectory();

                  //Membuat Direktori Baru dengan Nama "ContohDirektori"
                  File createDir = new File(dirExternal.getAbsolutePath()+"/ContohDirektori");

                  //Jika Direktori "ContohDirektori" Tidak Ada, Maka akan Membuatnya
                  if (!createDir.exists()){
                      createDir.mkdir();
                      //Membuat File Baru didalam Direktori "ContohDirektori"
                      File file = new File(createDir, "ContohFile.txt");

                      String setData = InputData.getText().toString();
                      //Digunakan untuk membuat dan menulis File/Data di Internal
                      FileOutputStream fileOutputStream;
                      try {
                          //Membuat Berkas Baru dengan mode Private
                          fileOutputStream = new FileOutputStream(file);

                          fileOutputStream.write(setData.getBytes());

                          fileOutputStream.close();

                          Toast.makeText(getApplicationContext(), "Data Disimpan di External", Toast.LENGTH_SHORT).show();
                      }catch (IOException ex){
                          ex.printStackTrace();
                      }
                  }
              }else {
                  Toast.makeText(getApplicationContext(), "Penyimpanan External Tidak Tersedia", Toast.LENGTH_SHORT).show();
              }
          }
      });
3) Jalankan project tersebut, coba kalian inputkan nilai/data pada aplikasi tersebut, lalu simpan pada penyimpanan External, maka akan terlihat Direktori Baru pada Penyimpanan External kalian, seperti berikut ini.



Untuk membuat file .txt tersebut kalian memerlukan aplikasi editor.

Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Wildan M Athoillah
Wildan M Athoillah Blogger dan spesialis pembuat aplikasi android.