1,332 Views
Sinopsis
Format penyimpanan yang bersifat terbuka dan banyak digunakan sampai saat ini yaitu format CSV yang berbasis plain text. Format CSV comma separable version yaitu pemisah text menggunakan comma walaupun tidak harus sih, kadang juga menggunakan tab, titik koma, atapun tanda – ataupun hanya berisi data tanpa header sama sekali. Format ini mempunyai keunggulan berupa portable, cross platform, cuman boros karena tidak ter kompresi seperti format lainnya yaitu XML biasa digunakan untuk format setting sebuah aplikasi, format JSON untuk pertukaran berbasisi protokol HTTP yang saat ini digunakan untuk membuat aplikasi cloning di android.
Walaupun begitu Beberapa data yang tersusun dengan model tabel yaitu terdiri dari baris dan kolom secara umum dipertukarkan menggunakan format CSV (comma separable version) yang mudah dibaca oleh banyak aplikasi, daripada menggunakan versi data binary. Misalkan pada contoh berikut dibawah ini.
Dengan pemisah menggunakan operator titik koma, kalian bisa menggunakan class Tokenizer untuk melakukan parser. Berikut contoh penggunaan nya yaitu membaca sebuah file *.txt dan menyimpannya kedalam sebuah array object.
import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.StringTokenizer; /** * * @author mulkan.ms@gmail.com */ public class Parser { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here File file = new File("D:/Parser/data.txt"); Object [][] data = Parser.parser(file); int endl=0; } public static Object [][] parser(File file) { BufferedReader bufferedreader = null; try { bufferedreader = new BufferedReader(new FileReader(file)); } catch (FileNotFoundException ex) { ex.printStackTrace(); } String buff1 = ""; String buff2; try { while ((buff2 = bufferedreader.readLine()) != null) { buff1 = new StringBuilder().append(buff1).append(buff2).append ("\n").toString(); } } catch (IOException ex) { ex.printStackTrace(); } String pesan = buff1; String newline ="\n"; try { bufferedreader.close(); } catch (IOException ex) { ex.printStackTrace(); } StringTokenizer stringtokenizer; int k = (stringtokenizer = new StringTokenizer(pesan, newline)).countTokens(); String[] strings = (new String [k]); Object objects; k = 0; while (stringtokenizer.hasMoreElements()) { objects = stringtokenizer.nextToken(); strings[k] = (String) objects; k++; } Object [][] result = null; int cek = 0; for (int i=0;i<strings.length;i++) { StringTokenizer stringtokenizer2; //jenis pemisah yaitu int k2 = (stringtokenizer2 = new StringTokenizer(strings[i]," ;,\t\r\f")).countTokens(); if (cek==0) { cek = k2; result = new Object [k][k2]; } String [] strings2 = new String[k2]; Object objects2; k2 = 0; while (stringtokenizer2.hasMoreElements()) { objects2 = stringtokenizer2.nextToken(); strings2[k2] = (String) objects2; result[i][k2] = strings2[k2]; k2++; } if(cek!=k2) { /*System.out.print("\nterjadi kesalahan saat parser"+"\n");*/ break; } } return result; } }
Sangat mudah sekali bukan? Parsing File CSV sebagai format pertukaran data yang terbuka