Menyimpan dan Membaca File di Android Menggunakan Bahasa Pemrograman Java

Ingin tahu bagaimana cara menyimpan dan membaca file di Android menggunakan Java? Dalam artikel ini, kita akan membahas dua jenis penyimpanan file yang umum digunakan dalam pengembangan aplikasi Android: penyimpanan internal dan penyimpanan eksternal. Artikel ini cocok bagi pemula maupun pengembang yang ingin memperdalam pengetahuan dalam manajemen file Android.

Apa Itu Penyimpanan Internal dan Eksternal di Android?

  • Penyimpanan Internal: Lokasi penyimpanan pribadi aplikasi. File yang disimpan di sini tidak dapat diakses oleh aplikasi lain.
  • Penyimpanan Eksternal: Lokasi yang bisa diakses oleh aplikasi lain dan pengguna, seperti penyimpanan SD Card atau direktori publik.

1. Menyimpan dan Membaca File di Penyimpanan Internal

Menyimpan File

String filename = "contohfile.txt";
String fileContents = "Ini adalah data yang disimpan di internal storage.";

try (FileOutputStream fos = openFileOutput(filename, Context.MODE_PRIVATE)) {
fos.write(fileContents.getBytes());
Log.d("File", "File berhasil disimpan.");
} catch (IOException e) {
e.printStackTrace();
}

Membaca File

String filename = "contohfile.txt";
StringBuilder sb = new StringBuilder();

try (FileInputStream fis = openFileInput(filename);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr)) {

String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}

Log.d("File", "Isi file: " + sb.toString());

} catch (IOException e) {
e.printStackTrace();
}

2. Menyimpan dan Membaca File di Penyimpanan Eksternal

Izin yang Diperlukan

Tambahkan izin di AndroidManifest.xml:

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

Untuk Android 6.0 (API 23) ke atas, minta izin secara runtime.

Menyimpan File

String fileName = "contoh_eksternal.txt";
String fileContents = "Ini adalah file di penyimpanan eksternal.";

if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
File file = new File(getExternalFilesDir(null), fileName);
try (FileOutputStream fos = new FileOutputStream(file)) {
fos.write(fileContents.getBytes());
Log.d("File", "File eksternal berhasil disimpan.");
} catch (IOException e) {
e.printStackTrace();
}
}

Membaca File

String fileName = "contoh_eksternal.txt";
File file = new File(getExternalFilesDir(null), fileName);
StringBuilder sb = new StringBuilder();

try (FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr)) {

String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}

Log.d("File", "Isi file eksternal: " + sb.toString());

} catch (IOException e) {
e.printStackTrace();
}

Tips dan Best Practice

  • Selalu periksa ketersediaan storage menggunakan Environment.getExternalStorageState().
  • Gunakan getExternalFilesDir() agar file hanya dapat diakses oleh aplikasi Anda.
  • Untuk data sensitif, selalu simpan di penyimpanan internal.
  • Jangan lupa untuk meminta izin runtime pada Android 6.0 ke atas.

Kesimpulan

Dengan memahami perbedaan antara penyimpanan internal dan eksternal di Android, Anda bisa memilih pendekatan yang tepat untuk menyimpan dan membaca file dalam aplikasi Anda. Java menyediakan API yang mudah digunakan untuk mengelola file secara efisien di Android.