Genel

Java Serialization & Deserialization İşlemleri

Merhabalar,

Java da bilindiği üzere herşey nesnedir. Nesne üzerinden tüm işlemlerimizi yapmaktayız. Nesneleri bu yüzden 1 kere kullanmak yerine tekrar tekrar kullanmamız gerekmektedir. Gelin hep birlikte bu konuda bize yardımcı olan serialization ve deserialization işlemini inceleyelim.

Bugün java da bir nesne ‘nin bilgilerinin byte olarak değişken tiplerini saklayabildiğimiz, kısaca nesneyi bir dosya da koruyabildiğimiz yapıyı (Serialization) ve dosya da yazılı olan bir verinin nasıl java da değişken ‘e dönüştürebileceğimiz işlemini (Deserialization) göreceğiz.

IDE ‘lerde her bir Serializable eklenen class ‘ın unique ‘liğini sağlamak için serial uid ekleyebilirsiniz. Bunun için kullandığınız IDE ‘ye ait plugin ‘i bulmanız gerekiyor.

Basit bir person class ‘ı yazalım.


public class Person implements Serializable{

    private static final long serialVersionUID = -2142744455845655234L;
    
    
    private String name;
    private String surName;
    private int age;

    public Person(String name, String surName, int age) {
        this.name = name;
        this.surName = surName;
        this.age = age;
    }
    
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSurName() {
        return surName;
    }

    public void setSurName(String surName) {
        this.surName = surName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" + "name=" + name + ", surName=" + surName + ", age=" + age + '}';
    }
    
    
}

ve bu class ‘ı bir dosyaya yazdıralım ve okuyalım.

public class Main {
    public static void main(String[] args) {
        
    Person person=new Person("Ümit","KÖSE",27);
        System.out.println("Person : " + person);
        
        Main main = new Main();
        
        main.Yaz(person);
        main.oku();
    }
    
    private void Yaz(Person person){
        
        try {
            FileOutputStream file = new FileOutputStream("/home/umitkose/Desktop/test.txt");
            
            ObjectOutputStream yaz = null;
            try {
                yaz = new ObjectOutputStream(file);
            } catch (IOException ex) {
                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
            }
            
            yaz.writeObject(person);
            yaz.close();
            
        } catch (FileNotFoundException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
     
    }
    
    private void oku(){
         try{
                  FileInputStream dosya = new FileInputStream("/home/umitkose/Desktop/test.txt");
                  ObjectInputStream oku = new ObjectInputStream(dosya);
                  Person person = (Person)oku.readObject();
                   System.out.println(person.toString());
                  oku.close();
            }
            catch(Exception e){
                  System.out.println(e.getMessage());
            }
    }
    
}

Olay aslında bu kadar basit. Serializable ilgili Nesne class ‘ına direk olarak eklenip istediğiniz dosya da vs tutabileceğiniz ve okurkende o nesneye kolaylıkla dönüştürebileceğiniz bir yapıdır. Sizden serializable implemente ‘ini silerek tekrar kodu çalıştırmanızı istiyorum. Okuyamadığını göreceksiniz.

İyi Günler.

Farklı Bir Kaynak :

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir