English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

التعليمات الأساسية لـ Java

تحكم Java في العملية

Java مصفوفات

Java منظمات (I)

Java منظمات (II)

Java منظمات (III)

معالجة الاستثناءات في Java

Java قائمة (List)

Java Queue (الصف)

مجموعات Java Map

مجموعات Java Set

Java إدخال/إخراج (I/O)

Java Reader/Writer

موضوعات أخرى Java

فئة Java ObjectOutputStream

في هذا الدرس، سنتعلم باستخدام مثال Java ObjectOutputStream及其 طرق.

يمكن استخدام فئة ObjectOutputStream من حزمة java.io لتحرير الأجسام التي يمكن قراءتها باستخدام ObjectInputStream.

انه وراثي من فئة OutputStream抽象ة.

عملية ObjectOutputStream

بشكل عام، يستخدم ObjectOutputStream تحويل الأسماء الفئوية وأسعار الأجسام لتحويل جسيمات Java. وبالتالي، يتم إنشاء النافذة المرسلة. هذا العملية يُدعى بتحويل الأجسام.

يمكن حفظ هذه النافذات المحوّلة في الملفات ويمكن نقلها عبر الشبكة.

NoteObjectOutputStream فئة يمكنها كتابة فقط الأجسام التي تستخدم واجهة Serializable. هذا لأن الأجسام تحتاج إلى تحويل عند كتابتها في النافذة.

إنشاء ObjectOutputStream

لإنشاء جريدة نافذة استدلالية ObjectOutputStream، يجب علينا أولاً استيراد حزمة java.io.ObjectOutputStream. بعد استيراد الحزمة، يمكننا إنشاء جريدة نافذة استدلالية.

//إنشاء FileOutputStream، حيث يتم كتابة الأجسام في ObjectOutputStream
FileOutputStream fileStream = new FileOutputStream(String file);
//إنشاء ObjectOutputStream
ObjectOutputStream objStream = new ObjectOutputStream(fileStream);

في المثال السابق، قمنا بإنشاء جريدة نافذة استدلالية ObjectOutputStream تدعى objStream، وتم ربط هذه الجريدة النافذة بمجريدة نافذة ملف تدعى fileStream.

طريقة ObjectOutputStream

يقدم class ObjectOutputStream تنفيذًا لطرق مختلفة تظهر في class OutputStream.

طريقة write()

  • write() - كتابة بيانات البايت إلى تدفق الخروج

  • writeBoolean() - كتابة البيانات ك布尔

  • writeChar() - كتابة البيانات كحرف

  • writeInt() - كتابة البيانات كعدد صحيح

  • writeObject() - كتابة الجسم إلى تدفق الخروج

مثال 1: Java ObjectOutputStream

لنرى كيف يمكننا استخدام 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 لقراءة البيانات من الملف.

مثال 2: Java ObjectOutputStream

لنأخذ مثالاً آخر

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.

Other methods of ObjectOutputStream

MethodContent Description
flush()Clear all data in the output stream
drain()Put all buffered data into the output stream
close()Close Output Stream