يشبه خط الأنابيب في Java NIO خط الأنابيب الفعلي ، مع طرفين ، قسم واحد كمدخلات والقسم الآخر كإخراج. وهذا يعني ، بعد إنشاء خط أنابيب ، يمكنك كتابة خط الأنابيب أو قراءة خط الأنابيب ، ولكن يجب إجراء هاتين العمليتين في كلا الطرفين. قليلا مثل قائمة الانتظار.
فيما يلي رسم تخطيطي لمبدأ الأنبوب:
إنشاء خط أنابيب
افتح خط الأنابيب عبر طريقة pipe.open (). على سبيل المثال:
Pipe pipe = Pipe.open();
اكتب البيانات إلى خط الأنابيب
لكتابة البيانات إلى خط الأنابيب ، تحتاج إلى الوصول إلى قناة الحوض. مثله:
Pipe.SinkChannel sinkChannel = pipe.sink();
اكتب البيانات إلى SinkChannel عن طريق استدعاء طريقة Write () لـ SinkChannel ، مثل هذا:
String newData = "سلسلة جديدة للكتابة إلى ملف ..." + system.currentTimeMillis () ؛ bytebuffer buf = bytebuffer.allocate (48) ؛ buf.clear () ؛ buf.put (newData.getBytes ()) ؛ buf.flip () ؛ بينما (buf.hasremaining ()) {sinkchannel.write (buf) ؛}في مثال الاختبار ، نقدم عملية خط أنابيب بسيطة للغاية ، واكتب المحتوى أولاً إلى خط الأنابيب ، ثم نقرأ المحتوى من خط الأنابيب.
package com.test.nio ؛ import java.io.ioException ؛ استيراد java.nio.bytebuffer ؛ استيراد java.nio.channels.pipe ؛ فئة عامة testpipea {/** * @param args * athrows استثناء */public static void main (string [] thows thows {throws { pipe.sinkchannel sinkchannel = pipe.sink () ؛ string newData = "itbuluoge.com يقول: خط أنابيب*/بينما (buf.hasremaining ()) {sinkchannel.write (buf) ؛}/*إنشاء خط أنابيب قراءة*/pipe.sourcechannel sourcechannel = pipe.source () ؛ bytebuffer getBuf = bytebuffer.allocate (48) ؛ int int bytesread = sourcechannel.read (getBuf) ؛ getBuf.flip () ؛/*قراءة المحتوى من خط الأنابيب*/بينما (getBuf.hasRemaining ()) {system.out.print ((char) getBuf.get ()) ؛}}}نتيجة الإخراج
يمكننا أن نرى أنه يمكننا تحقيق الأهداف التي نحتاجها. لاحظ أنه عندما كنت أقوم برمجة في هذا المكان ، كان لدي خطأ ، أي عندما كنت أقرأ خط الأنابيب ، لم أقم بتعيين getBuf.flip () ، مما جعل من المستحيل قراءة البيانات. هذه الوظيفة مهمة جدا. بعد الانتهاء من محتوى القراءة العازلة ، يجب عليك تعيين علامة القراءة واستعادة المؤشر إلى الموضع الأصلي قبل أن تتمكن من قراءة جميع المحتوى.
ما سبق هو كل المحتوى المشترك في هذه المقالة حول مدونة استخدام أنابيب Java Nio ، وآمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!