Pengaksesan file tidak lepas dari sebuah bahasa pemrograman. Dalam mengembangkan sebuah aplikasi, terkadang kita memiliki kebutuhan untuk melakukan pengaksesan sebuah file, baik itu membaca isi dari file, maupun menyimpan data dalam bentuk file. Sebagai contoh, konfigurasi aplikasi yang dikembangkan disimpan dalam sebuah file, sehingga aplikasi akan membaca file konfigurasi tersebut terlebih dahulu sebelum melakukan proses yang lain.
Teman-teman mungkin sudah pernah membaca beberapa artikel mengenai Android lainnya. Artikel ini juga akan membahas mengenai cara mengakses dan menulis file menggunakan Android.
. Android menyediakan fungsi
Anda bisa menggunakan salah satu mode di atas tentunya disesuaikan dengan kebutuhan.
. Android menyediakan fungsi
Dari kedua penggalan kode program di atas, teman-teman bisa mengkombinasikan dengan aplikasinya masing-masing. Berikut saya sertakan contoh aplikasi untuk meulis dan membaca file.
Berikut ini saya akan menuliskan kode program secara lengkap untuk menulis data ke file dan kemudian membacanya:
package com.secangkirkopipanas.android.apps;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class SavingFileActivity extends Activity {
private Button btnSubmit = null;
private Button btnQuit = null;
private EditText txtName = null;
private String fileName = "SampleSavingFile.txt";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txtName = (EditText) findViewById(R.id.txtName);
btnSubmit = (Button) findViewById(R.id.btnSave);
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
doConfirm();
}
});
btnQuit = (Button) findViewById(R.id.btnQuit);
btnQuit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
public void doConfirm() {
AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Sending Request");
alertDialog
.setMessage("This process will take few seconds. Are you sure want to save to file?");
final String name = txtName.getText().toString();
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.i("onClick@doConfirm",
"Click on 'save' button with txtName: " + name);
if (saveFile(name, fileName)) {
Toast.makeText(
SavingFileActivity.this,
"The file has been saved with name '" + fileName
+ "'", Toast.LENGTH_LONG).show();
String fileContent = readFile(fileName);
Toast.makeText(SavingFileActivity.this, fileContent,
Toast.LENGTH_LONG).show();
}
}
});
alertDialog.setIcon(R.drawable.icon);
alertDialog.show();
}
public boolean saveFile(String content, String path) {
try {
final String bodyOfFile = new String(content);
FileOutputStream fOut = openFileOutput(path, MODE_WORLD_READABLE);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
osw.write(bodyOfFile);
osw.flush();
osw.close();
return true;
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(SavingFileActivity.this, e.getMessage(),
Toast.LENGTH_LONG).show();
return false;
}
}
public String readFile(String path) {
try {
StringBuffer strBuff = new StringBuffer();
InputStream is = openFileInput(path);
if (is != null) {
InputStreamReader isr = new InputStreamReader(is);
BufferedReader buff = new BufferedReader(isr);
String line;
while ((line = buff.readLine()) != null) {
strBuff.append(line.trim());
}
}
is.close();
return strBuff.toString().trim();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(SavingFileActivity.this, e.getMessage(),
Toast.LENGTH_LONG).show();
return null;
}
}
}