Bu eğiticide, örnekler yardımıyla Java ObjectOutputStream ve yöntemleri hakkında bilgi edineceğiz.
ObjectInputStream
Sınıf java.io
paketinin önceden tarafından yazılmış nesneleri okumak için kullanılabilir ObjectOutputStream
.
InputStream
Soyut sınıfı genişletir .
ObjectInputStream
Sınıfı öğrenmeden önce , ObjectOutputStream Sınıfı hakkında bilgi sahibi olduğunuzdan emin olun.
ObjectInputStream ile Çalışma
ObjectInputStream
Ağırlıklı tarafından yazılan veri okumak için kullanılır ObjectOutputStream
.
Temel olarak, ObjectOutputStream
Java 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.ObjectInputStream
paketi 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, objStream
nesneleri dosyadan okumak için kullanılabilir.
ObjectInputStream Yöntemleri
ObjectInputStream
Sınıf farklı yöntemlerin uygulamaları içinde mevcut içerir InputStream
sınıfı.
read () Yöntem
read()
- giriş akışından bir bayt veri okurreadBoolean()
- verileri boole biçiminde okurreadChar()
- verileri karakter biçiminde okurreadInt()
- verileri tam sayı biçiminde okurreadObject()
- nesneyi giriş akışından okur
Örnek 1: Java ObjectInputStream
ObjectInputStream
Sı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 ObjectOutputStream
veriyi 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
ObjectOutputStream
adlandırılmışFileOutputStream
dosya kullanılarak adlandırılmış çıktıObjectInputStream
adlandırılmışFileInputStream
fileStream 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ı Serializable
arabirimi uygular . Bunun nedeni, ObjectOutputStream
serileş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.