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

Type and hit Enter to search

  • Eğitim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • Spring Core
  • Spring Örnekleri
  • Hibernate
  • Java Server Pages
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • Java 8
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
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

Cloud
Amazon Web Services
Vue.js
Gradle
Node.js
Android
Struts
Redis
Röportaj
Spring Data
Spring Cloud Stream
XCode
Debezium
Mikroservis Mimarisi
Video
Spring Native
iPhone Uygulama Geliştirme
Objective C
JPA
Spring Security
PostgreSQL
Apache Kafka
Git
Servlet
Yaptığım Projeler
Maven
Design Patterns
DevOps
Linux
RabbitMQ
PrimeFaces
JDBC
Spring Jdbc Template
Spring
Spring MVC
Manset
Google
Spring Cloud
OCA Java SE 8
Spring Core
Quarkus
Microsoft
Tanıyalım
Veritabanı
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
  • Eğitim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • Spring Core
  • Spring Örnekleri
  • Hibernate
  • Java Server Pages
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • Java 8
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale