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 yazarwriteBoolean()- verileri boole biçiminde yazarwriteChar()- verileri karakter biçiminde yazarwriteInt()- verileri tamsayı biçiminde yazarwriteObject()- 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 kullanarakFileOutputStreamobjOut adlıObjectInputStreamisimli fileIn kullanarak objIn olarakFileInputStreamadlandı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.








