Java ObjectInputStream (Örneklerle)

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

ObjectInputStreamSınıf java.iopaketinin önceden tarafından yazılmış nesneleri okumak için kullanılabilir ObjectOutputStream.

InputStreamSoyut sınıfı genişletir .

ObjectInputStreamSınıfı öğrenmeden önce , ObjectOutputStream Sınıfı hakkında bilgi sahibi olduğunuzdan emin olun.

ObjectInputStream ile Çalışma

ObjectInputStreamAğırlıklı tarafından yazılan veri okumak için kullanılır ObjectOutputStream.

Temel olarak, ObjectOutputStreamJava nesnelerini karşılık gelen akışlara dönüştürür. Bu, serileştirme olarak bilinir. Dönüştürülen bu akışlar dosyalarda saklanabilir veya ağlar aracılığıyla aktarılabilir.

Şimdi, bu nesneleri okumamız gerekirse ObjectInputStream, akımları karşılık gelen nesnelere dönüştürecek olanı kullanacağız. Bu, seriyi kaldırma olarak bilinir.

Bir ObjectInputStream oluşturun

Bir nesne giriş akışı oluşturmak için önce java.io.ObjectInputStreampaketi içe aktarmalıyız . Paketi içe aktardıktan sonra, işte bir giriş akışını nasıl oluşturabileceğimiz.

 // Creates a file input stream linked with the specified file FileInputStream fileStream = new FileInputStream(String file); // Creates an object input stream using the file input stream ObjectInputStream objStream = new ObjectInputStream(fileStream); 

Yukarıdaki örnekte, fileStream adlı dosya giriş akışı ile bağlantılı olan objStream adında bir nesne giriş akışı oluşturduk.

Şimdi, objStreamnesneleri dosyadan okumak için kullanılabilir.

ObjectInputStream Yöntemleri

ObjectInputStreamSınıf farklı yöntemlerin uygulamaları içinde mevcut içerir InputStreamsınıfı.

read () Yöntem

  • read() - giriş akışından bir bayt veri okur
  • readBoolean() - verileri boole biçiminde okur
  • readChar() - verileri karakter biçiminde okur
  • readInt() - verileri tam sayı biçiminde okur
  • readObject() - nesneyi giriş akışından okur

Örnek 1: Java ObjectInputStream

ObjectInputStreamSınıf tarafından yazılan nesneleri okumak için sınıfı nasıl kullanabileceğimize bakalım ObjectOutputStream.

 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"); ObjectOutputStream output = new ObjectOutputStream(file); // Writing to the file using ObjectOutputStream output.writeInt(data1); output.writeObject(data2); FileInputStream fileStream = new FileInputStream("file.txt"); // Creating an object input stream ObjectInputStream objStream = new ObjectInputStream(fileStream); //Using the readInt() method System.out.println("Integer data :" + objStream.readInt()); // Using the readObject() method 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, dosyadan tamsayı verilerini ve nesne verilerini okumak için readInt()ve readObject()yöntemini kullandık .

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

Örnek 2: Java ObjectInputStream

Başka bir pratik örnek görelim,

 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 dog = new Dog("Tyson", "Labrador"); try ( FileOutputStream file = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream output = new ObjectOutputStream(file); // Writes objects to the output stream output.writeObject(dog); FileInputStream fileStream = new FileInputStream("file.txt"); // Creates an ObjectInputStream ObjectInputStream input = new ObjectInputStream(fileStream); // Reads the objects Dog newDog = (Dog) input.readObject(); System.out.println("Dog Name: " + newDog.name); System.out.println("Dog Breed: " + newDog.breed); output.close(); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Çıktı

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

Yukarıdaki örnekte, oluşturduk

  • ObjectOutputStreamadlandırılmış FileOutputStreamdosya kullanılarak adlandırılmış çıktı
  • ObjectInputStreamadlandırılmış FileInputStreamfileStream kullanarak adlandırılmış girdi
  • Köpek sınıfının bir nesne köpeği

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, ObjectOutputStreamserileştirilebilir nesneleri yalnızca çıkış akışına yazmasıdır.

Diğer ObjectInputStream Yöntemleri

Yöntemler Açıklamalar
available() giriş akışındaki kullanılabilir bayt sayısını döndürür
mark() verinin okunduğu giriş akışındaki konumu işaretler
reset() denetimi giriş akışında işaretin ayarlandığı noktaya döndürür
skipBytes() giriş akışından belirtilen baytları atlar ve atar
close() nesne giriş akışını kapatır

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

Ilginç makaleler...