فئة جافا PipedReader
ال فئة PipedReader في جافا هو جزء من java.io الحزمة ويتم استخدامها لقراءة بيانات الأحرف من الأنبوب. تسمح هذه الفئة بالاتصال بين الخيوط حيث يكتب أحد الخيوط البيانات باستخدام PipedWriter ويقرأها آخر باستخدامها قارئ الأنابيب.
مميزات فئة PipedReader:
- يسمح بقراءة البيانات من خلال الأنبوب.
- يستخدم مخزنًا مؤقتًا لتخزين البيانات الواردة من PipedWriter.
- يعمل مع PipedWriter للتأكد من نقل البيانات بأمان بين سلاسل العمليات.
- إذا انكسر الأنبوب فإنه يلقي خطأ.
ما هو الأنبوب في جافا؟
في Java يتم استخدام الأنبوب لربط خيطين. يتم استخدام خيط واحد لإرسال البيانات عبر الأنبوب بينما يقرأ الخيط الآخر البيانات. إذا توقف الخيط الذي يرسل البيانات أو تعطل، فسيتم اعتبار الأنبوب مكسورًا.
إعلان فئة PipedReader
إعلان فئة PipedReader هو:
الطبقة العامة PipedReader تمتد القارئ
جميع الواجهات المنفذة:
- قابل للإغلاق: تُستخدم هذه الواجهة لإغلاق الدفق وتحرير الموارد عند عدم الحاجة إليها.
- قابل للإغلاق التلقائي: تسمح هذه الواجهة بإدارة الموارد تلقائيًا في بيانات تجربة الموارد.
- مقروءة: تسمح هذه الواجهة بقراءة البيانات من الدفق.
بناة PipedReader
تتكون هذه الفئة من أربعة مُنشئات يمكننا من خلالها إنشاء كائن من هذه الفئة بطرق مختلفة. فيما يلي المنشئات المتوفرة في هذه الفئة:
1. قارئ الأنابيب (): يقوم هذا المنشئ بإنشاء PipedReader غير متصل بأي كاتب حتى الآن.
بناء الجملة:
قارئ الأنابيب العام ()
2. قارئ الأنابيب (حجم الأنبوب الدولي): يقوم هذا المنشئ بإنشاء aPipedREAder بحجم أنبوب محدد.
بناء الجملة:
قارئ الأنابيب العام (int pSize)
3. PipedReader(PipedWriter src): يقوم هذا المُنشئ بإنشاء PipedReader المتصل بـ PipedWriterStream src.
قارئ الأنابيب العام (PipedWriter src)
4. PipedReader (PipedWriter src int PipeSize): يقوم هذا المنشئ بإنشاء PipedReader متصل بحجم محدد ومرتبط بـ PipedWriter المحدد.
بناء الجملة:
PipedReader العام (PipedWriter src int pSize)
جافا PipedReaderMethods
توضح الصورة أدناه أساليب فئة PipedReader.
وسنتحدث الآن عن كل طريقة على حدة بالتفصيل:
1.قراءة (): يتم استخدام هذه الطريقة للحصول على الحرف التالي من PipedReader. يتم حظره حتى تكون هناك بيانات لقراءتها بعد حدوث خطأ.
بناء الجملة:
قراءة int العامة () تطرح IOException
- المعلمة: هذه الطريقة لا تأخذ أي معلمة.
- نوع الإرجاع: تقوم هذه الطريقة بإرجاع الحرف التالي كعدد صحيح أو إرجاع -1 إذا تم الوصول إلى نهاية الدفق.
مثال:
Java // Demonstrating the working // of read() method import java.io.* ; public class GeeKs { public static void main ( String [] args ) throws IOException { PipedReader r = new PipedReader (); PipedWriter w = new PipedWriter (); // Connect the reader and writer r . connect ( w ); // Write data to the PipedWriter w . write ( 71 ); System . out . println ( 'Read: ' + ( char ) r . read ()); w . write ( 69 ); System . out . println ( 'Read: ' + ( char ) r . read ()); w . write ( 75 ); System . out . println ( 'Read: ' + ( char ) r . read ()); } }
الإخراج
Read: G Read: E Read: K
2. قراءة (شار [] كاراي إنت إزاحة إنت ماكسلين): يتم استخدام هذه الطريقة لقراءة ما يصل إلى حرف maxlen من PipedReader Stream إلى مصفوفة الأحرف. يتم حظر الطريقة في حالة الوصول إلى نهاية الدفق أو طرح الاستثناء.
بناء الجملة:
قراءة int العامة (char[] carray int offset int maxlen) تطرح IOException
- المعلمة: تتضمن هذه الطريقة ثلاث معلمات مدرجة أدناه:
- كاري: إنه المخزن المؤقت الذي سيتم قراءة البيانات فيه.
- إزاحة: إنه موضع البداية في المصفوفة
- ماكسلين: الحد الأقصى لعدد الأحرف التي يمكن قراءتها في المصفوفة.
- نوع الإرجاع: تقوم هذه الطريقة بإرجاع الحد الأقصى من وحدات البايت من البيانات كقيمة عددية أو إرجاع -1 عند الوصول إلى نهاية الدفق
مثال:
Java // Demonstrating the working // of read(char[] carray int offset int maxlen) import java.io.* ; public class Geeks { public static void main ( String [] args ) throws IOException { PipedReader r = new PipedReader (); PipedWriter w = new PipedWriter (); r . connect ( w ); // Write data to PipedWriter w . write ( 71 ); // G w . write ( 69 ); // E w . write ( 75 ); // K w . write ( 83 ); // S // Read data into an array char [] b = new char [ 5 ] ; r . read ( b 0 5 ); System . out . print ( 'Read characters: ' ); for ( char c : b ) { System . out . print ( c ); } } }
الإخراج
Read characters: GEKS
3. إغلاق (): يتم استخدام هذه الطريقة لإغلاق PipedReader.
بناء الجملة:
إغلاق الفراغ العام () يلقي IOException
- المعلمة: هذه الطريقة لا تأخذ أي معلمة
- نوع الإرجاع: هذه الطريقة لا ترجع أي شيء
مثال:
Java // Demonstrating the working // of close() method import java.io.* ; public class Geeks { public static void main ( String [] args ) throws IOException { PipedReader r = new PipedReader (); PipedWriter w = new PipedWriter (); r . connect ( w ); w . write ( 71 ); // Close the reader r . close (); System . out . println ( 'Stream closed.' ); } }
الإخراج
Stream closed.
4. جاهز (): تُستخدم هذه الطريقة للتحقق مما إذا كان الدفق جاهزًا للقراءة.
بناء الجملة:
جاهز منطقي عام () يلقي IOException
- المعلمة: هذه الطريقة لا تأخذ أي معلمة
- نوع الإرجاع: تُرجع هذه الطريقة صحيحًا إذا كان الدفق جاهزًا للقراءة وإلا فإنها تُرجع خطأ.
مثال:
Java // Demonstrating the working // of ready() method import java.io.* ; public class Geeks { public static void main ( String [] args ) throws IOException { PipedReader r = new PipedReader (); PipedWriter w = new PipedWriter (); r . connect ( w ); w . write ( 71 ); // Check if the stream is ready to be read System . out . println ( 'Stream is ready to be read: ' + r . ready ()); } }
الإخراج
Stream is ready to be read: true
5. إغلاق (): يتم استخدام هذه الطريقة لإغلاق تدفقات PipedReader.
بناء الجملة:
إغلاق الفراغ العام ()
- المعلمة: هذه الطريقة لا تأخذ أي معلمة.
- نوع الإرجاع: هذه الطريقة لا ترجع أي شيء.
مثال:
Java // Demonstrating the working // of close() method import java.io.* ; public class Geeks { public static void main ( String [] args ) { try { // Create a PipedReader and PipedWriter PipedReader r = new PipedReader (); PipedWriter w = new PipedWriter (); // Connect the PipedReader to the PipedWriter r . connect ( w ); // Write a character to the PipedWriter w . write ( 'A' ); // Read and print the character from the PipedReader System . out . println ( 'Read: ' + ( char ) r . read ()); // Output: A // Close the PipedReader stream r . close (); System . out . println ( 'Stream closed.' ); } catch ( IOException e ) { e . printStackTrace (); } } }
الإخراج
Read: A Stream closed.إنشاء اختبار