Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Quarkus Dersleri
  • Spring Dersleri
    • Spring Cloud
    • Spring Boot
    • Spring Uygulama Örnekleri
    • Spring Core
    • Spring JDBC Template
    • Spring MVC
  • İleri Java Dersleri
    • Java Server Faces
    • Java Server Pages
    • PrimeFaces
    • Servlet
    • JDBC
    • JSTL
    • Java 8
  • Hibernate Dersleri
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
  • Hakkımda
JavaJava SE

Java Serialization (Serileştirme) Nedir?

Paylaş

javb

Bu yazıda Java Serialization, yani serileştirme konusundan bahsedeceğim.

Java bilindiği üzere nesneye dayalı bir dil. Neredeyse her şey nesne. Nesneleri kullanırken bir defa değil istenilen zamanda ve yerde tekrar, tekrar ve tekrar kullanabilmemiz gerekebiliyor. Bu noktada ise bizim “serileştirme” dediğimiz yapı devreye giriyor.

Yukarıdaki cümlede kalın olarak belirttiğim “istenilen yerde” cümlesine dikkatinizi çekmek istiyorum. Değişkenlere ait değerleri bir dosyaya kaydetdiğinizi düşünün. Tekrar kullanmak istediğinizde bu değerlerin ne ve hangi tipte olduğunu bilemeyiz. Nesnelerimizin içinde bulunan değerler ve ve veri tipleri ile birlikte saklayabiliyoruz. Bu güzel yöntem “Java Serileştirme” sayesinde olmaktadır.

Nesnelerin içerisindeki değişkenlerin adları, tipleri değeleri byte’lara çevrilerek kaydedilir ve bu dosyayı nereye götürürsek götürelim JVM bu değerleri bir kayıp olmadan okuyup kullanabiliriz. Serileştirme işlemi için Java’nın Serializable sınıfını kullanıyoruz.

Serileştirmeyi bir örnek yaparak pekiştirelim. Kişi bilgilerinin kaydedildiği bir sınıfımız olucak bu bilgileri bir dosyaya kaydedip tekrar okuyacağız ve kişi bilgilerinin değerlerinde ve tiplerinde bir farklılık olmadığını kaydederken nasılsa öyle kaldığını göreceğiz.

import java.io.Serializable;
 
public class Kisi implements Serializable {
      private String ad;
      private String soyad;
      //
      public Kisi(){ }
      public Kisi(String ad, String soyad){
            this.ad = ad;
            this.soyad = soyad;
      }
      public String getAd() {
            returnad;
      }
      publicvoid setAd(String ad) {
            this.ad = ad;
      }
      public String getSoyad() {
            returnsoyad;
      }
      publicvoid setSoyad(String soyad) {
            this.soyad = soyad;
      }

      public String toString(){
            return "Ad : " + this.ad + "\nSoyad : " + this.soyad;
      }
}

Şimdi ise kişi bilgilerini dosyaya kaydedelim.

    public static void Yaz(){
            try{
                  Kisi kisi = new Kisi("Burak", "Kutbay");
                  FileOutputStream dosya = new FileOutputStream("C:\\metin.txt");
                  ObjectOutputStream yaz = new ObjectOutputStream(dosya);
                  yaz.writeObject(kisi);
                  yaz.close();
            }
            catch(Exception e){
                  System.out.println(e.getMessages());
            }
}

metin.txt dosyasına bu bilgileri kaydettik. Şimdi bu dosyadan kaydettiğimiz verileri okuyacağız.

 public static void Oku(){
            try{
                  FileInputStream dosya = new FileInputStream("C:\\metin.txt");
                  ObjectInputStream oku = new ObjectInputStream(dosya);
                  Kisi kisi = (Kisi)oku.readObject();
                   System.out.println(kisi.toString());
                  oku.close();
            }
            catch(Exception e){
                  System.out.println(e.hetMessages());
            }
}

Dosyadaki bilgileri okuduk. Sonuç ise;

Ad: Burak Soyad: Kutbay

şeklinde oldu.

Serileştirme işlemi sayesinde dosyadaki verilerin tipleri korunduğu için JVM bunu anlayarak başka bir işlem yapmadan gerekli olan değerleri değişkenlerine atadı ve sonucu bu Ad, Soyad şeklinde gösterdi.

Bol kodlu günler.

Tags:

Javajava serileştirme örnekSerializableSerializable örnek

Paylaş

Diğer Yazılar

blank
Previous

Linux JDK Eclipse Installer Bash Script

blank
Next

Hazelcast Nedir?

Next
blank
09 Kasım 2015

Hazelcast Nedir?

Previews
16 Ekim 2015

Linux JDK Eclipse Installer Bash Script

blank

2 Comments

  1. ibrahim dedi ki:
    14 Haziran 2018, 20:02

    güzel yazı olmuş, eline sağlık

    Cevapla
  2. troy dedi ki:
    06 Haziran 2020, 07:59

    peki serileştirme yaparken
    atıyorum .txt dosyası başkasının eline geçti byte koddan open source kodu okurmu bilemem class adını doğru yazdı diyelim içindeki nesneyi okudu değişken private final olursa set yapamayacağı için değiştiremez ama yeni nesne oluşturabilir. Aynı class yapısana uygun başka class yaratırsa . Orjinal kodda benim kaydettiğim class olarak okursam değişiğ değişmediği nasıl anlaşılır ?

    Cevapla

Bir cevap yazın Cevabı iptal et

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

İlgini Çekebilir

javb

JSP Sayfaya Applet Eklemek ( JSP Plugin )

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Struts
Röportaj
Android
Vue.js
Node.js
Redis
Spring Cloud Stream
Spring Data
Debezium
Mikroservis Mimarisi
XCode
Spring Native
Video
PostgreSQL
Spring Security
JPA
iPhone Uygulama Geliştirme
Objective C
Design Patterns
DevOps
Git
Apache Kafka
Maven
Yaptığım Projeler
Servlet
Spring Cloud
Linux
Spring
PrimeFaces
Spring Jdbc Template
JDBC
RabbitMQ
Manset
Google
Spring MVC
OCA Java SE 8
Quarkus
Spring Core
Microsoft
Veritabanı
Tanıyalım
Java SE
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github