[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.1

Tentunya output bisa disesuaikan sesuai kebutuhan, bisa langsung diinput ke query untuk segera di masukan kedalam database,dst. Semoga contoh sederhana ini bisa berguna :)

12 thoughts on “[Java] Membaca File CSV

  1. nice! gimana kalo datanya mengandung karakter yang sama dengan delimiternya?
    .-= achmatim´s last blog ..Baca Tulis File CSV dengan PHP =-.

    [Reply]

    Kus Andriadi Reply:

    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]

  2. sama ama STringTokenizer yee…

    [Reply]

    Kus Andriadi Reply:

    iya sama :) cuma mungkin cara memakai nya yang agak berbeda, karena yang saya tau ada beberapa cara yang sama dengan yang diatas….

    [Reply]

  3. kk mau tanya, kalo dari isi notepad itu, di tampilkan ke JTextField gmn cara nya ya?
    mohon bantuan nya kk..

    [Reply]

    Kus Andriadi Reply:

    lah….tinggal textField.setText(StringDariNotepad); doang kan…

    [Reply]

    nana Reply:

    Tapi pas aku coba bgtu, gk bisa kk..
    ni source code ku..pengen bikin bisa login gt kak.
    ini ak tes dlu kluar gk pas di syso..tau nya eror nya bgni
    Exception in thread “AWT-EventQueue-0″ java.util.regex.PatternSyntaxException: Dangling meta character ‘?’ near index 0
    ?
    ^

    void bacafile()
    {
    String temp;
    String tmp[];

    try
    {
    BufferedReader br = new BufferedReader(new FileReader(“dataUser.txt”));
    while ((temp = br.readLine()) != null)
    {
    tmp = temp.split(“?”);
    //tname.getText().setText(tmp[0]);
    System.out.println(tmp[0]);
    }
    }
    br.close();
    }
    catch (IOException e)
    {
    e.printStackTrace();
    JOptionPane.showMessageDialog(null,”Please Register before login..”);
    }
    }

    [Reply]

  4. jika byk id gmn kk misal isi csvnya gini

    ID,NAMA,ALAMAT,NO_TELP
    1,YTS,JL YTS,0217777777

    [Reply]

    Kus Andriadi Reply:

    sama aja keqnya kaya yang diatas, edit2 dikit aja

    [Reply]

  5. mas mau tanya,kalau bikin program java untuk membaca file teks dg ekstensi *.doc gimana ya bisa ga, soalna bisanya kan yg diinputin format *.txt trmakash????

    [Reply]

    Kus Andriadi Reply:

    wah saya belom pernah nyoba :)

    [Reply]

Leave a Reply