English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، سنتعلم باستخدام مثال Java ObjectOutputStream及其 طرق.
يمكن استخدام فئة ObjectOutputStream من حزمة java.io لتحرير الأجسام التي يمكن قراءتها باستخدام ObjectInputStream.
انه وراثي من فئة OutputStream抽象ة.
بشكل عام، يستخدم ObjectOutputStream تحويل الأسماء الفئوية وأسعار الأجسام لتحويل جسيمات Java. وبالتالي، يتم إنشاء النافذة المرسلة. هذا العملية يُدعى بتحويل الأجسام.
يمكن حفظ هذه النافذات المحوّلة في الملفات ويمكن نقلها عبر الشبكة.
NoteObjectOutputStream فئة يمكنها كتابة فقط الأجسام التي تستخدم واجهة Serializable. هذا لأن الأجسام تحتاج إلى تحويل عند كتابتها في النافذة.
لإنشاء جريدة نافذة استدلالية ObjectOutputStream، يجب علينا أولاً استيراد حزمة java.io.ObjectOutputStream. بعد استيراد الحزمة، يمكننا إنشاء جريدة نافذة استدلالية.
//إنشاء FileOutputStream، حيث يتم كتابة الأجسام في ObjectOutputStream FileOutputStream fileStream = new FileOutputStream(String file); //إنشاء ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream);
في المثال السابق، قمنا بإنشاء جريدة نافذة استدلالية ObjectOutputStream تدعى objStream، وتم ربط هذه الجريدة النافذة بمجريدة نافذة ملف تدعى fileStream.
يقدم class ObjectOutputStream تنفيذًا لطرق مختلفة تظهر في class OutputStream.
write() - كتابة بيانات البايت إلى تدفق الخروج
writeBoolean() - كتابة البيانات ك布尔
writeChar() - كتابة البيانات كحرف
writeInt() - كتابة البيانات كعدد صحيح
writeObject() - كتابة الجسم إلى تدفق الخروج
لنرى كيف يمكننا استخدام ObjectOutputStream لتحديد الأجسام في الملف وكيف يمكننا استخدام ObjectInputStream لقراءة هذه الأجسام من الملف
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 w3codebox"; try { FileOutputStream file = new FileOutputStream("file.txt"); // إنشاء ObjectOutputStream ObjectOutputStream output = new ObjectOutputStream(file); // كتابة الكائن في تدفق الخروج output.writeInt(data1); output.writeObject(data2); //استخدام 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(); } } }
Output Result
Integer data: 5 String data: This is w3codebox
في المثال السابق، استخدمنا طرق readInt() و readObject() لقراءة بيانات الأعداد الصحيحة والمجسمات من الملف.
في هذا المكان، نستخدم ObjectOutputStream للكتابة إلى الملف. ثم نستخدم ObjectInputStream لقراءة البيانات من الملف.
لنأخذ مثالاً آخر
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) { // إنشاء كائن من فئة Dog Dog dog1 = new Dog("تايلور", "كلب رابيدو هانتر"); try { FileOutputStream fileOut = new FileOutputStream("file.txt"); // إنشاء ObjectOutputStream ObjectOutputStream objOut = new ObjectOutputStream(fileOut); // كتابة الكائن في تدفق الخروج objOut.writeObject(dog1); // قراءة الكائن FileInputStream fileIn = new FileInputStream("file.txt"); ObjectInputStream objIn = new ObjectInputStream(fileIn); // قراءة الكائن Dog newDog = (Dog) objIn.readObject(); System.out.println("اسم الكلب: " + newDog.name); System.out.println("النوع: " + newDog.breed); objOut.close(); objIn.close(); } catch (Exception e) { e.getStackTrace(); } } }
Output Result
Dog name: Terry Dog breed: Labrador Retriever
In the above example, we created
ObjectOutputStream named objOut uses FileOutputStrea named fileOut.
ObjectInputStream named objIn uses FileInputStream named fileIn.
Object of Dog class dog1.
Here, we then use the object output stream to write objects to the file. And, the object input stream reads objects from the file.
Note:Dog class implements Serializable interface. This is because ObjectOutputStream only writes objects that can be serialized to the output stream.
Method | Content Description |
---|---|
flush() | Clear all data in the output stream |
drain() | Put all buffered data into the output stream |
close() | Close Output Stream |