Monday, February 10, 2020

Buku Tips dan Trik Pemrograman Java-Parsing File CSV


Sinopsis

Beberapa data yang tersusun dengan model tabel yaitu terdiri dar 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
Buku Tips dan Trik Pemrograman Java-Parsing File CSV

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;
    }
    
}

Dengan hasil sebagai berikut
Buku Tips dan Trik Pemrograman Java-Parsing File CSV

No comments:

Post a Comment