You are on page 1of 3

DATA STORAGE 2

INTERNAL STORAGE

Dalam latihan ini kita akam membuat aplikasi yang bisa menyimpan tulisan dalam format namaFile.txt.
File ini disimpan 1 package dengan aplikasi, dapat dibaca kembali jika diklik button “Read Field”. Melalui
perspektif DDMS, anda bisa melihat file yang dicreate. Perhatikan gambar disamping

1. Buat project Baru

Project name StorageInternal


Build Target Android 2.2
Aplication name StorageInternal
Package name Com.write.file
Create Activity StorageInternalActivity
Min SDK version 8

2. Strings.xml seperti berikut

1. <?xml version="1.0" encoding="utf-8"?>


2. <resources>
3. <string name="hello">Hello World, StorageInternalActivity!</string>
4. <string name="app_name">StorageInternal</string>
5. <string name="btnSimpanLabel">Save to internal storage</string>
6. <string name="btnClearLabel">Clear Field</string>
7. <string name="btnReadLabel">Read Field</string>
8. </resources>

3. Buatlah layout Main.xml seperti ini

1. <?xml version="1.0" encoding="utf-8"?>


2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3. android:layout_width="fill_parent"
4. android:layout_height="wrap_content"
5. android:orientation="vertical" >
6. <TextView
7. android:layout_width="fill_parent"
8. android:layout_height="wrap_content"
9. android:text="@string/hello" />
10. <EditText
11. android:id="@+id/inPesan"
12. android:layout_width="match_parent"
13. android:layout_height="150dp"
14. android:ems="10"
15. android:gravity="top"
16. android:inputType="textMultiLine" >
17. <requestFocus />
18. </EditText>
19. <LinearLayout
20. android:layout_width="match_parent"
21. android:layout_height="wrap_content"
22. android:orientation="vertical" >
23. <Button
24. android:id="@+id/bSave"
25. android:layout_width="match_parent"
26. android:layout_height="wrap_content"
27. android:text="@string/btnSimpanLabel" />
28. <Button
29. android:id="@+id/bClear"
30. android:layout_width="match_parent"
31. android:layout_height="wrap_content"
32. android:text="@string/btnClearLabel" />
33. <Button
34. android:id="@+id/bRead"
35. android:layout_width="match_parent"
36. android:layout_height="wrap_content"
37. android:text="@string/btnReadLabel" />
38. </LinearLayout>
39. </LinearLayout>

3. Activity

1. package com.write.file;
2. import java.io.FileInputStream;
3. import java.io.InputStreamReader;
4. import java.io.OutputStream;
5. import java.io.OutputStreamWriter;
6. import android.app.Activity;
7. import android.os.Bundle;
8. import android.util.Log;
9. import android.view.View;
10. import android.view.View.OnClickListener;
11. import android.widget.Button;
12. import android.widget.EditText;
13. import android.widget.Toast;
14. public class StorageInternalActivity extends Activity implements
15. OnClickListener {
16. final String FILE_NAME = "SAMPLEFILE.txt";
17. EditText pesan;
18. Button bsave, bclear, bread;
19. String isiPesan;
20. /** Called when the activity is first created. */
21. @Override
22. public void onCreate(Bundle savedInstanceState) {
23. super.onCreate(savedInstanceState);
24. setContentView(R.layout.main);
25. pesan = (EditText) findViewById(R.id.inPesan);
26. bsave = (Button) findViewById(R.id.bSave);
27. bclear = (Button) findViewById(R.id.bClear);
28. bread = (Button) findViewById(R.id.bRead);
29. bsave.setOnClickListener(this);
30. bclear.setOnClickListener(this);
31. bread.setOnClickListener(this);
32. }
33. public void onClick(View v) {
34. // TODO Auto-generated method stub
35. switch (v.getId()) {
36. case R.id.bSave:
37. fileCreate();
38. break;
39. case R.id.bClear:
40. pesan.setText("");
41. break;
42. case R.id.bRead:
43. readFile();
44. break;
45. }
46. }
47. private void fileCreate() {
48. try {
49. isiPesan = pesan.getText().toString();
50. OutputStream os = openFileOutput(FILE_NAME, MODE_WORLD_READABLE);
51. OutputStreamWriter osw = new OutputStreamWriter(os);
52. osw.write(isiPesan);
53. osw.close();
54. Toast.makeText(getApplicationContext(), "Berhasil Disimpan",
55. Toast.LENGTH_SHORT).show();
56. } catch (Exception e) {
57. Log.i("ReadNWrite, fileCreate()", "Exception e = " + e);
58. }
59. }
60. private void readFile() {
61. try {
62. FileInputStream fin = openFileInput(FILE_NAME);
63. InputStreamReader isReader = new InputStreamReader(fin);
64. char[] buffer = new char[isiPesan.length()];
65. isReader.read(buffer);
67. pesan.setText(new String(buffer));
68. } catch (Exception e) {
69. Log.i("ReadNWrite, readFile()", "Exception e = " + e);
70. }
71. }
72. }

PENJELASAN PROGRAM

Berikut adalah langkah-langkah untuk membuat dan menyimpan file dalam internal storage :

1. Panggil method openFileOutput dengan 2 parameter, yaitu nama file dan mode. Jika sebelumnya
belum ada file maka akan dibuat file baru. Namun jika sudah ada maka file lama akan direplace.
Method ini memiliki kembalian berupa FileOutputStream.

2. Menulis file melalui method write(). OutputStreamWriter adalah kelas yang bertugas mengubah
aliran karakter menjadi aliran byte. Dengan demikian, teks apa saja yang dimasukkan dalam field
akan diubah menjadi deretan byte oleh kelas OutputStreamWriter, kemudian dituliskan ke dalam file
melalui method write()

3. Method close dipanggil untuk menutup pintu masuk file .txt, kemudian buffer dilepaskan.

Secara umum, proses membaca file dari internal storage sama dengan waktu menulis. Method
openFileInput untuk mengambil file .txt, kemudian aliran byte diubah menjadi karakter oleh kelas
InputStream Reader(). Akhirnya karakter berupa deretan huruf ditampilkan kembali dalam field.

MEMBUAT VIRTUAL SDCARD

Dalam membuat aplikasi, kadang kita ingin aplikasi berjalan seperti sebenarnya, misalnya me-load file
mp3 atau gambar dari sdcard, atau menyimpan file ke dalam sdcard. Untuk memenuhi kebutuhan
seperti ini maka kita harus membuat sebuah virtual sdcard pada emulator. Berikut adalah cara untuk
membuat virtual sdcard :

1. Pada emulator, siapkan SD Card secukupnya, missal 256


MB
2. Melalui DDMS, masukkan file ke dalam sdcard dengan
mengklik button push a file di sebelah pojok kanan atas

3. Apabila berhasil, dapat di


cek melalui DDMS tab file explorer seperti gambar
dibawah. Di dalam folder mnt/sdcard terdapat sejumlah
file yang dimasukkan ke dalam sdcard

You might also like