Pages

Kamis, 17 November 2011

Stream and String

Kelas Document
package stream;


import java.io.*;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author admin
 */
public class Document {

    private File file;
    private String teks = "";


    public Document(File file) {
        setFile(file);
    }

    public Document(String fileName) {
        File tempFile = new File(fileName);
        setFile(tempFile);

    }

    private void setFile(File file) {
        this.file = file;
    }

    /**
     * @return the file
     */
    public File getFile() {
        return file;

    }

    /**
     * @return the teks
     */
    public String getTeks() {
        return teks;
    }

    /**
     * @param teks the teks to set
     */
    public void setTeks(String teks) {
        this.teks = teks;
    }

    public void baca() throws FileNotFoundException, IOException {
        FileInputStream stream = new FileInputStream(file);
        int result;
        while ((result = stream.read()) != -1) {
            teks = teks + (char) result;
        }
        stream.close();
    }

    public void simpan() throws FileNotFoundException, IOException {
        FileOutputStream stream = new FileOutputStream(file);
        stream.write(teks.getBytes());
        stream.close();
    }
}

Kelas ListPengguna
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package stream;

import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;
import project.Koleksi;
import project.Mahasiswa;
import project.Pengguna;

/**
 *
 * @author Novi
 */
public class ListPengguna {

    private ArrayList<Pengguna> daftarPengguna;
    private Document dokumen;

    public ListPengguna() {
    }

    public ListPengguna(Document dokumen) {
        this.dokumen = dokumen;
    }

    /**
     * @return the daftarPengguna
     */
    public ArrayList<Pengguna> getDaftarPengguna() {
        return daftarPengguna;
    }

    /**
     * @param daftarPengguna the daftarPengguna to set
     */
    public void setDaftarPengguna(ArrayList<Pengguna> daftarPengguna) {
        this.daftarPengguna = daftarPengguna;
    }

    /**
     * @return the dokumen
     */
    public Document getDokumen() {
        return dokumen;
    }

    /**
     * @param dokumen the dokumen to set
     */
    public void setDokumen(Document dokumen) {
        this.dokumen = dokumen;
    }

    public boolean isKosong() {
        if (daftarPengguna == null) {
            return true;
        } else {
            return false;
        }
    }

    public void baca() throws IOException {
        dokumen.baca();
        String data = dokumen.getTeks();
        System.out.println(data);
        StringTokenizer test = new StringTokenizer(data, "[;\n\r]");
//        while(test.hasMoreTokens()){
//            System.out.println(test.nextToken());
//        }
        int jumlahAnggota = Integer.parseInt(test.nextToken());
        System.out.println("jumlah Anggota : " + jumlahAnggota);
        daftarPengguna = new ArrayList<Pengguna>();

        for (int i = 0; i < jumlahAnggota; i++) {
            Mahasiswa test2 = new Mahasiswa();
            test2.setNim(test.nextToken());
            test2.setNama(test.nextToken());
            int jumlahPinjaman = Integer.parseInt(test.nextToken());
            System.out.println("Jumlah Pinjaman : " + jumlahPinjaman + " ");
            for (int j = 0; j < jumlahPinjaman; j++) {

                Koleksi test3 = new Koleksi();
                test3.setId(test.nextToken());
                test3.setJudul(test.nextToken());
                test3.setTglPinjam(test.nextToken());
                test2.tambahDaftarPinjaman(test3);
            }
            System.out.println(test2.tampilPinjaman());
            daftarPengguna.add(test2);
        }
    }

    public void simpan() {
        String result = " ";
        result = result + daftarPengguna.size() + ";\n";
        for (int i = 0; i < daftarPengguna.size(); i++) {
            result = result + daftarPengguna.get(i).getNama() + ";" + daftarPengguna.get(i).getDaftarPinjaman().size();
        }
        System.out.println("hasil: " + result);
    }

    public String cetak() {
        return null;
    }

    public void tambah(Pengguna pengguna) {
        if (isKosong()) {
            daftarPengguna = new ArrayList<Pengguna>();
            daftarPengguna.add(pengguna);
        }
        daftarPengguna.add(pengguna);
    }

    public void hapus(Pengguna pengguna) {
//        if (isAda(pengguna)) {
//            daftarPengguna.remove(pengguna);
//        }
    }

    public boolean isAda(Pengguna pengguna) {
        return false;
    }
}


Kelas TestListPengguna
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package stream;

import java.io.IOException;

/**
 *
 * @author admin
 */
public class TestListPengguna {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
      ListPengguna test = new ListPengguna();
      Document dok = new Document("cobaDokumen.txt");
      test.setDokumen(dok);
      test.baca();
      test.simpan();

      
    }

}

0 komentar:

Posting Komentar