Java ObjectOutputStream (Örneklerle)

Bu eğitimde, örnekler yardımıyla Java ObjectOutputStream ve yöntemleri hakkında bilgi edineceğiz.

ObjectOutputStreamSınıf java.iopaketine tarafından okunabilir nesneleri yazmak için kullanılabilir ObjectInputStream.

OutputStreamSoyut sınıfı genişletir .

ObjectOutputStream ile Çalışma

Temel olarak, ObjectOutputStreamJava nesnelerini sınıf adını ve nesne değerlerini kullanarak kodlar. Ve bu nedenle karşılık gelen akışları oluşturur. Bu işlem serileştirme olarak bilinir.

Dönüştürülen bu akışlar dosyalarda saklanabilir ve ağlar arasında aktarılabilir.

Not : ObjectOutputStreamSınıf yalnızca Serializablearabirimi uygulayan nesneleri yazar . Bunun nedeni, nesnelerin akışa yazılırken serileştirilmesi gerektiğidir.

Bir ObjectOutputStream oluşturun

Bir nesne çıktı akışı yaratmak için önce java.io.ObjectOutputStreampaketi içe aktarmalıyız . Paketi içe aktardıktan sonra, işte nasıl bir çıktı akışı oluşturabiliriz.

 // Creates a FileOutputStream where objects from ObjectOutputStream are written FileOutputStream fileStream = new FileOutputStream(String file); // Creates the ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream); 

Yukarıdaki örnekte, fileStream adlı dosya çıktı akışıyla bağlantılı olan objStream adlı bir nesne çıktı akışı oluşturduk.

ObjectOutputStream Yöntemleri

ObjectOutputStreamSınıf, farklı yöntemler için uygulamalar içinde mevcut içerir OutputStreamsınıfı.

write () Yöntem

  • write() - çıktı akışına bir bayt veri yazar
  • writeBoolean() - verileri boole biçiminde yazar
  • writeChar() - verileri karakter biçiminde yazar
  • writeInt() - verileri tamsayı biçiminde yazar
  • writeObject() - nesneyi çıktı akışına yazar

Örnek 1: Java ObjectOutputStream

ObjectOutputStreamBir dosyada nesneleri depolamak ve ObjectInputStreambu nesneleri dosyalardan okumak için nasıl kullanabileceğimize bakalım.

 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; class Main ( public static void main(String() args) ( int data1 = 5; String data2 = "This is programiz"; try ( FileOutputStream file = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream output = new ObjectOutputStream(file); // writes objects to output stream output.writeInt(data1); output.writeObject(data2); // Reads data using the ObjectInputStream FileInputStream fileStream = new FileInputStream("file.txt"); ObjectInputStream objStream = new ObjectInputStream(fileStream); System.out.println("Integer data :" + objStream.readInt()); System.out.println("String data: " + objStream.readObject()); output.close(); objStream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Çıktı

 Tamsayı verileri: 5 Dize verileri: Bu programdır 

Yukarıdaki örnekte, dosyalardan bir tamsayı verisi ve nesne verisi okumak için readInt()yöntemi ve readObject()yöntemi kullandık.

Burada ObjectOutputStreamveriyi dosyaya yazmak için kullandık. Daha sonra verileri ObjectInputStream.

Örnek 2: Java ObjectOutputStream

Başka bir örnek alalım,

 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; class Dog implements Serializable ( String name; String breed; public Dog(String name, String breed) ( this.name = name; this.breed = breed; ) ) class Main ( public static void main(String() args) ( // Creates an object of Dog class Dog dog1 = new Dog("Tyson", "Labrador"); try ( FileOutputStream fileOut = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream objOut = new ObjectOutputStream(fileOut); // Writes objects to the output stream objOut.writeObject(dog1); // Reads the object FileInputStream fileIn = new FileInputStream("file.txt"); ObjectInputStream objIn = new ObjectInputStream(fileIn); // Reads the objects Dog newDog = (Dog) objIn.readObject(); System.out.println("Dog Name: " + newDog.name); System.out.println("Dog Breed: " + newDog.breed); objOut.close(); objIn.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Çıktı

 Köpek Adı: Tyson Köpek Cinsi: Labrador 

Yukarıdaki örnekte, oluşturduk

  • ObjectOutputStreamadlandırılmış fileOut kullanarak FileOutputStreamobjOut adlı
  • ObjectInputStreamisimli fileIn kullanarak objIn olarak FileInputStreamadlandırılmış.
  • Dog sınıfından bir nesne dog1.

Burada, nesneyi dosyaya yazmak için nesne çıktı akışını kullandık. Ve nesneyi dosyadan okumak için nesne giriş akışı.

Not : Dog sınıfı Serializablearabirimi uygular . Bunun nedeni ObjectOutputStream, çıktı akışına serileştirilebilen yalnızca nesneleri yazmasıdır.

Diğer ObjectOutputStream Yöntemleri

Yöntemler Açıklamalar
flush() çıktı akışındaki tüm verileri temizler
drain() arabelleğe alınan tüm verileri çıktı akışına koyar
close() çıktı akışını kapatır

Daha fazla bilgi edinmek için Java ObjectOutputStream (resmi Java belgeleri) sayfasını ziyaret edin.

Ilginç makaleler...