[Java] Membaca File CSV
Jika saya kutip dari achmatim.net.
CSV atau Comma-Separated Value merupakan suatu format penyajian data teks dimana setiap data (field) dipisahkan dengan suatu pemisah koma (,) dan setiap baris record dipisahkan dengan baris baru (line-break). Selain menggunakan pemisah (delimiter) koma terkadang jenis file CSV juga dapat dipisahkan dengan titik-koma ( ; ) atau karakter <tab>. Jenis file CSV sendiri, dapat dibaca oleh semua software pengolah data (spreadsheet) seperti Microsoft Excel dan OpenOffice Calc.
Pemisah atau delimiter biasanya ditandai dengan ” , ” tapi itu semua tergantung kebutuhan karena kita sendiri bisa menentukan pemisah seperti apa yang akan kita gunakan, di contoh program di bawah ini saya akan menggunakan “#” sebagai pemisah.
Seperti yang kita ketahui, ketika kita akan membeli kartu perdana telepon seluler, kita pasti disuruh mendaftar dengan format (saya ambil singkat saja) :
- no.id#nama lengkap#pekerjaan#alamat
Untuk itu sebelum anda membuat source code untuk membaca format diatas, buatlah file bacaTeks.txt dengan notepad isinya :
32.000.92819#Kus Andriadi#Mahasiswa#Jl.Mangga No.1
Misal format diatas adalah format yang dibutuhkan, lalu bagaimana cara nya memasukan data tersebut ke database? yah, tentu saja format diatas tidak serta merta di input langsung ke database, tapi harus di pilah-pilah terlebih dahulu, ada banyak cara memisahkan String di java dengan delimiter tertentu, disini saya menggunakan class Scanner dari java.util, berikut source code nya :
import java.util.*;
import java.io.*;
public class ReadFile{
private File file;
private Scanner input;
private String kodePen, nama, pekerjaan, alamat;
public ReadFile(){
try{
file = new File("bacaTeks.txt");
input = new Scanner(file);
input.useDelimiter("#");
while(input.hasNext()){
kodePen = input.next();
nama = input.next();
pekerjaan = input.next();
alamat = input.next();
cetak(kodePen,nama,pekerjaan,alamat);
}
input.close();
}catch(Exception e){
System.out.println("ERROR : " + e.getMessage());
}
}
private void cetak(String kodePen, String nama, String pekerjaan, String alamat){
System.out.println("Kode Penduduk : " + kodePen);
System.out.println("Nama : " + nama);
System.out.println("Pekerjaan : " + pekerjaan);
System.out.println("alamat : " + alamat);
}
public static void main(String[] args){
new ReadFile();
}
}taruh sejajar program diatas dengan file bacaTeks.txt, output dari program diatas akan seperti ini :
Kode Penduduk : 32.000.92819
Nama : Kus Andriadi
Pekerjaan : Mahasiswa
alamat : Jl.Mangga No.1Tentunya output bisa disesuaikan sesuai kebutuhan, bisa langsung diinput ke query untuk segera di masukan kedalam database,dst. Semoga contoh sederhana ini bisa berguna :)



nice! gimana kalo datanya mengandung karakter yang sama dengan delimiternya?
achmatim´s last blog ..Baca Tulis File CSV dengan PHP
[Reply]
Kus Andriadi Reply:
March 10th, 2010 at 12:18
yah kalo itu saya gak tau :P tapi kalo misalnya ini adalah registrasi via sms, pasti akan menimbulkan error karena akan ada lebih field yang tercipta…nah dengan error itu, kita bisa mengirim balik sms ke pengirim bahwa data yang di input tidak valid..huehehehee…
[Reply]
sama ama STringTokenizer yee…
[Reply]
Kus Andriadi Reply:
April 13th, 2010 at 05:55
iya sama :) cuma mungkin cara memakai nya yang agak berbeda, karena yang saya tau ada beberapa cara yang sama dengan yang diatas….
[Reply]