Masalah
Menyimpan data ke dalam file sebenarnya proses yang mudah, dan dalam pemrograman jelas sering dilakukan. Entah itu menyimpan gambar yang diambil dari internet, atau menyimpan data-data temporary atau apapun. Masalahnyanya adalah kadang kita mendapatkan path file yang tidak lengkap. Sehingga sering terjadi File System Error, hanya karena salah path file. Dokumentasi status error-nya bisa ditemukan di sini.
Solusi
Sebenarnya pemecahannya sederhana, yang dibutuhkan adalah path yang lengkap. Tanpa path yang lengkap, maka runtime akan memberikan Exception. Contoh path yang lengkap:
file:///SDCard/Blackberry/pictures/IMG-20110316-00052.jpg
Jika diperhatikan, elemen berikut harus ada:
- protokol, dalam hal ini file:
- alamat root, dalam contoh ini adalah SDCard untuk menunjukkan memory card
- path file, dalam contoh iniĀ Blackberry/pictures/IMG-20110316-00052.jpg
Untuk memastikan ini, saya sudah membuat method sederhana dalam class helper yang biasa saya gunakan. Berikut ini method yang saya buat:
public static synchronized String saveToFile(String basePath, byte[] data) throws IOException { try { if (basePath.startsWith("file://")) { // do nothing } else if (!basePath.startsWith("/")) basePath = "file:///" + basePath; else if (basePath.startsWith("//")) basePath = "file:/" + basePath; else basePath = "file://" + basePath; FileConnection fconn = (FileConnection) Connector.open(basePath, Connector.READ_WRITE); if (!fconn.exists()) fconn.create(); fconn.setWritable(true); OutputStream outputStream = fconn.openOutputStream(); outputStream.write(data); outputStream.close(); fconn.close(); return basePath; } catch (IOException e) { throw e; }}Silakan digunakan jika bermanfaat.
September 27, 2011
One response to Menyimpan bytes ke dalam file
Pingback: Membaca isi file | Mobile Application Developer