0

ObjectInputStream ve ObjectOuputStream ile Nesne yazma okuma – Serialization

Merhaba arkadaşlar bu yazımda sizlere collections nesnelerinde sakladığımız veriler nasıl dosyaya kaydedebiliriz bundan bahsedeceğim. Bildiğiniz gibi büyük çaptaki veriler için veritabanı daha mantıklı ancak küçük çaptaki bilgileri serialize ederek bir dosyaya yazmak gerçekten mantıklı . Bu dersde collections nesnelerine ait dataları  serialize edip dosyaya yazacağız ve bunları tekrar dan okuyacağız. İşte kodlar ve video anlatım . 

 

package com.company;

import java.io.*;
import java.lang.reflect.Array;
import java.util.ArrayList;

public class Main {

    public static void main(String[] args) throws IOException, ClassNotFoundException {
	// write your code here
        /*
        * Merhaba arkadaşlar bugun sizlere
        * ObjectInputStream ile ObjectOutputStream nesneleri ile
        * bir arrayList'i serialize ederek dosyayı yazmaya bakacağız.
        * Bir nevi basit veritabanı sistemi yapacağız.
        *
        * 1. Adım da : Bir Model sınıfı oluşturacağız
        * 2. Adım da : Bir arrayList oluşturup bu model dosyamıza göre veriler ekleyeceğiz.
        * 3. Adım da : Bir dosya oluşturup bunları dosyaya yazacağız .
        * 4. Adım da : Bu verileri tekrar okuyacağız.
        *
        *
        * */


        ArrayList<Kisi> kisiler=new ArrayList<>();
        kisiler.add(new Kisi("Ahmet AK",34));
        kisiler.add(new Kisi("mehmet PAK",45));
        kisiler.add(new Kisi("Ramazan Duran",33));
        kisiler.add(new Kisi("Feyzi Şemsi",44));

        for (Kisi kisi:kisiler
             ) {

          //  System.out.println(kisi.toString());
        }
        // verilerimiz hazır . Şimdi dosyaya yazdıralım

        File file=new File("datas.dat");
        ObjectOutputStream objectOutputStream=new ObjectOutputStream(new FileOutputStream(file));
        objectOutputStream.writeObject(kisiler);

        // Gördüğümüz gibi veriler serialize edilerek bir dosyaya aktarıldı şimdi bunları geri alalım

        ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file));

        ArrayList<Kisi> kisilerListeOkunan=(ArrayList<Kisi>) ois.readObject();


        for (Kisi k: kisilerListeOkunan
             ) {

            System.out.println("Dosyadan Okunan : "+ k.toString());

        }


        // Evet verilerimiz serialize ederek yazdırdık ve okumuş olduk.
        // bu gerekli demiştik .
        // Herkese kolay gelsin




    }
}

 

package com.company;

import java.io.Serializable;

public class Kisi implements Serializable {


    /*
    * Bu interfacenin herhangi bir abstract metodu yok
    * ancak bunu implemente etemiz gerekiyor.
    * */

    static  final long serialVersionUID=4L;

    String isim;
    int yas;

    public Kisi(String isim, int yas) {
        this.isim = isim;
        this.yas = yas;
    }

    public static long getVersionUID() {
        return serialVersionUID;
    }

    public String getIsim() {
        return isim;
    }

    public void setIsim(String isim) {
        this.isim = isim;
    }

    public int getYas() {
        return yas;
    }

    public void setYas(int yas) {
        this.yas = yas;
    }


    @Override
    public String toString() {
        return this.isim +" - "+this.yas;
    }
}

 

 

admin

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir