كيف يعمل Java InputStream

Kyf Y Ml Java Inputstream



تمكن Java المطورين من العمل مع الملفات. في مثل هذه الحالة ، فإن ' تيار الإدخال تدخل فئة ”حيز التنفيذ التي تساعد في قراءة محتويات الملف المحدد إلى جانب تحليل وحدات البايت المضمنة. ينتج عن هذا التعامل مع مشكلات الذاكرة وأيضًا إعادة محتوى الملف الانتقائي وفقًا للمتطلبات بكفاءة.

ستشرح هذه الكتابة عن عمل 'InputStream' في Java.







كيف يعمل Java InputStream؟

فئة 'InputStream' الخاصة بفئة ' java.io تتوافق الحزمة مع فئة فائقة مجردة تقوم بإرجاع تدفق إدخال يتكون من وحدات البايت مقابل الملف المحدد.



فئات فرعية من InputStream

من أجل تطبيق وظائف 'InputStream' ، يمكن استخدام الفئات الفرعية التالية:



    • FileInputStream
    • ObjectInputStream
    • ByteArrayInputStream

من هذا القبيل أن هذه الفئات الفرعية تقوم بتوسيع فئة 'InputStream'.





طرق InputStream

تحتوي فئة 'InputStream' على طرق مختلفة يتم تطبيقها بواسطة فئاتها الفرعية. فيما يلي بعض الطرق الأكثر استخدامًا:

طُرق وظائف
يقرأ() يقرأ بايت من البيانات من دفق الإدخال.



قراءة (مصفوفة [] بايت) يقرأ أيضًا البايت من الدفق ويخزنها في الصفيف الهدف.

يتخطى() تتخطى هذه الطريقة / تحذف عددًا محددًا من البايتات من دفق الإدخال.

متاح() يعطي البايت المتضمن في دفق الإدخال.
إعادة ضبط() يتيح الوصول إلى نقطة التدفق حيث تم تعيين العلامة.

علامة() تحدد هذه الطريقة الموضع في الدفق حتى تمت قراءة البيانات.

مارك دعم () يقوم بتحليل ما إذا كانت أساليب 'mark ()' و 'reset ()' مدعومة / متوافقة في الدفق.


قبل التوجه إلى المثال ، قم باستيراد الحزم التالية للعمل مع 'InputStream' وفئته الفرعية:

استيراد java.io.FileInputStream ؛
استيراد java.io.InputStream ؛


مثال: عمل InputStream في Java

يوضح هذا المثال طريقة عمل 'InputStream' من خلال قراءة محتوى الملف عبر طرق 'InputStream':

الطبقة العامة Inputstream {
العامة ثابت الفراغ الرئيسي ( سلاسل السلسلة [ ] ) {
بايت [ ] جيفارراي = بايت جديد [ خمسون ] ؛
يحاول {
قراءة بيانات InputStream = FileInputStream جديد ( 'readfile.txt' ) ؛
System.out.println ( 'البايت في الملف ->' + readData.available ( ) ) ؛
readData.read ( معين ) ؛
System.out.println ( 'قراءة بيانات الملف:' ) ؛
سلسلة تحتوي على بيانات = سلسلة جديدة ( معين ) ؛
System.out.println ( تحتوي على بيانات ) ؛
readData.close ( ) ؛
}
يمسك ( استثناء ما عدا ) {
باستثناء .getStackTrace ( ) ؛
}
} }


وفقًا لأسطر الكود أعلاه ، قم بتنفيذ الخطوات المذكورة أدناه:

    • أولاً ، أنشئ مصفوفة 'بايت' يمكن أن تشتمل على ' خمسون 'قيم البايت في ملف القراءة.
    • في الخطوة التالية ، أنشئ ' تيار الإدخال 'باستخدام' FileInputStream 'وإرجاع وحدات البايت المتوفرة في الملف المحدد عبر' متاح() ' طريقة.
    • بعد ذلك ، اقرأ البايت من تدفق الإدخال باستخدام ' يقرأ() ' طريقة.
    • الآن ، قم بتحويل مصفوفة البايت إلى سلسلة واعرض محتويات الملف.
    • أخيرًا ، أغلق ملف القراءة باستخدام ' يغلق() ' طريقة.

انتاج |


في هذه النتيجة ، يمكن أن يعني ضمنيًا أن عدد البايتات في الملف ، أي المساحة المتراكمة بواسطة المحتوى يتم إرجاعها وفقًا للنطاق الأقصى في مصفوفة البايت ، أي '50'. أيضا ، يتم إرجاع محتوى الملف بشكل مناسب.

محتوى الملف


للحصول على نظرة عامة حول ' يتخطى() ' و ' إعادة ضبط() '، ففكر في العرض التوضيحي التالي:


في هذا الرسم التوضيحي ، تتخطى طريقة 'skip ()' العدد المحدد من البايتات ، أي ' 5 -> جافا 'من محتوى الملف من البداية. ومع ذلك ، فإن طريقة 'إعادة التعيين ()' تعيد تعيين الدفق.

خاتمة

ال ' تيار الإدخال 'فئة من' java.io 'الحزمة هي فئة فائقة مجردة تتوافق مع تدفق إدخال من البايتات المستخدمة لقراءة بيانات الملف. يشتمل هذا الفصل على طرق مختلفة تساعد في منهجيات قراءة الملف بشكل فعال وفقًا للمتطلبات. توضح هذه المدونة الغرض من 'InputStream' وعمله في Java.