-- Java SE

Object I/O

ObjectInputStream/ObjectOutputStream sınıfları serializable nesneleri okuma/yazma’da kullanılır.

DataInputStream/DataOutputStream sınıfları I/O işlemlerini primitive tip ve Stringler için yaparken,ObjectInputStream/ObjectOutputStream sınıfları ek olarak nesneler için de yapar.ObjectInputStream/ObjectOutputStream sınıfları DataInputStream/DataOutputStream sınıfındaki tüm metodları içerir.

 

ObjectInputStream sınıfı InputStream sınıfından kalıtılmıştır(extends) ve ObjectInput ve  ObjectStreamConstants interfacelerini implement eder.Aynı şekilde ObjectOutputStream sınıfı OutputStream sınıfından kalıtılmıştır ve ObjectOutput ve ObjectStreamConstants interfecalerini uygular.

import java.io.*;

public class ObjectTest {

    public static void main(String args[]) throws ClassNotFoundException,IOException{

        ObjectOutputStream writer = new ObjectOutputStream(new FileOutputStream("objecttest.txt"));

        // ObjectOutputStream writer = new ObjectOutputStream(
        //        new BufferedOutputStream(new FileOutputStream("objecttest.txt")));
        // Performansı arttırmak için Buffer'da eklenebilir.

        writer.writeUTF("Meriç BERBER"); //String yazmada kullanılır.
        writer.writeDouble(22.5);
        writer.writeObject(new java.util.Date());

        writer.close();




        ObjectInputStream reader = new ObjectInputStream(new FileInputStream("objecttest.txt"));
        //ObjectInputStream reader2 = new ObjectInputStream(
        //              new BufferedInputStream(new FileInputStream("objecttest.txt")));
        
        String isim = reader.readUTF();
        double yas =  reader.readDouble();
        java.util.Date date = (java.util.Date)reader.readObject();
        
        reader.close();

        System.out.print(isim +" "+yas+" "+date);


    }
}

Her nesne dosyaya yazılamaz.Yazılabilmesi için serializable olması gerekir.Bir sonraki yazıda açıklayacağım…

 

Yorum bırak

Yorum