English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، سنتعلم باستخدام مثال Java ObjectOutputStream及其 طرق.
يمكن استخدام فئة ObjectInputStream في حزمة java.io لقراءة العناصر التي كتبها ObjectOutputStream.
أنه قام بتفريغ كائن InputStream.
قبل دراسة فئة ObjectInputStream، تأكد من أنك تفهمفئة ObjectOutputStream.
يُستخدم ObjectInputStream بشكل رئيسي لقراءة البيانات التي كتبها ObjectOutputStream.
بشكل عام، يقوم ObjectOutputStream بتحويل جافا إلى تيار الموضوعي. هذا يُسمى بسلسلة. يمكن تخزين هذه التيارات في ملفات، أو يمكن نقلها عبر الشبكة.
الآن، إذا كنت بحاجة إلى قراءة هذه العناصر، فستستخدم ObjectInputStream، الذي سيقوم بتحويل التيار إلى العناصر الم相应ة. هذا يُسمى بعملية تفريغ السلسلة.
لإنشاء تيار الإدخال الموضوعي، يجب علينا أولاً استيراد حزمة java.io.ObjectInputStream. بعد استيراد الحزمة، يمكننا إنشاء تيار الإدخال.
//إنشاء تيار الإدخال الموضوعي المرتبط بملف معين FileInputStream fileStream = new FileInputStream(String file); //استخدام تيار الإدخال لم 创建 تيار الإدخال الموضوعي ObjectInputStream objStream = new ObjectInputStream(fileStream);
في المثال السابق، قمنا بإنشاء مجسم تدفق الدخول للمجسم يسمى objStream، ويرتبط هذا التدفق الدخلي بتدفق الدخول للملف يسمى fileStream.
الآن، يمكن استخدام objStream لقراءة الأجسام من الملف.
فئة ObjectInputStream تقدم تنفيذًا لطرق موجودة في فئة InputStream.
read() - قراءة بايت واحد من التدفق الإدخالي
readBoolean() - قراءة البيانات بصيغة صحيح/خطأ
readChar() - قراءة البيانات بصيغة حرف
readInt() - قراءة البيانات بصيغة عدد صحيح
readObject() - قراءة الجسم من التدفق الإدخالي
دعونا نرى كيف يمكننا استخدام فئة ObjectInputStream لقراءة الأجسام المقدمة من فئة ObjectOutputStream.
إدخال 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 output = new ObjectOutputStream(file); //استخدام ObjectOutputStream لكتابة الملف output.writeInt(data1); output.writeObject(data2); FileInputStream fileStream = new FileInputStream("file.txt"); //إنشاء تدفق الدخول للمجسم ObjectInputStream objStream = new ObjectInputStream(fileStream); //استخدام طريقة readInt() System.out.println("بيانات الأعداد الصحيحة: " + objStream.readInt()); //استخدام طريقة readObject() System.out.println("بيانات النص: " + objStream.readObject()); output.close(); objStream.close(); } catch (Exception e) { e.getStackTrace(); } } }
نتيجة الخروج
بيانات الأعداد الصحيحة: 5 بيانات النص: This is w3codebox
في المثال السابق، استخدمنا طرق readInt() و readObject() لقراءة بيانات الأعداد الصحيحة والبيانات المقدمة من الملف.
في هذا المثال، استخدمنا ObjectOutputStream لكتابة البيانات إلى الملف. ثم، استخدمنا ObjectInputStream لقراءة البيانات من الملف.
دعونا نرى مثالاً عملياً آخر،
إدخال 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 dog = new Dog("Tyson", "Labrador"); try { FileOutputStream file = new FileOutputStream("file.txt"); //إنشاء ObjectOutputStream ObjectOutputStream output = new ObjectOutputStream(file); //كتابة الكائن إلى تدفق الخروج output.writeObject(dog); FileInputStream fileStream = new FileInputStream("file.txt"); //إنشاء ObjectInputStream ObjectInputStream input = new ObjectInputStream(fileStream); //قراءة الكائن Dog newDog = (Dog) input.readObject(); System.out.println("اسم الكلاب: " + newDog.name); System.out.println("نوع الكلاب: " + newDog.breed); output.close(); input.close(); } catch (Exception e) { e.getStackTrace(); } } }
نتيجة الخروج
اسم الكلاب: Tyson نوع الكلاب: Labrador
في المثال السابق، قمنا بإنشاء
ObjectOutputStream uses the named FileOutputStream file as output
ObjectInputStream uses the named FileInputStream fileStream as input
Object of Dog class dog
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 فئة تحقق من واجهة Serializable. هذا لأن ObjectOutputStream يكتب فقط الأجسام القابلة للتوثيق إلى تدفق الخروج.
Method | Content Description |
---|---|
available() | Return the number of available bytes in the input stream |
mark() | Mark the position of the read data in the input stream |
reset() | Return the control to the point in the input stream where the mark was set |
skipBytes() | Skip and discard the specified bytes from the input stream |
close() | Close the object input stream |