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.
- Belajar Membuat Aplikasi CRUD SQLite Database di Android Studio
- Cara Menambahkan Firebase pada Project Android
- Cara Menyimpan Data Menggunakan SharedPreferences
A.Internal Storage
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>
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();
}
}
});
Untuk membuat file .txt tersebut kalian memerlukan aplikasi editor.
Wassalamualaikum Warahmatullahi Wabarakatuh.