/ / جافا: InputStream. تدفقات المدخلات

جافا: InputStream. تدفقات المدخلات

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

أساليب من فئة InputStream

قبل البدء في الدراسة التفصيليةأساليب من فئة InputStream ، تجدر الإشارة إلى أنها تنفذ واجهات Closeable و AutoCloseable. تخبرنا واجهة التوصيل أنه يجب عليك إغلاقها عند إكمال العمل باستخدام مؤشر ترابط. يتم ذلك باستخدام طريقة إغلاق (). نظرًا لأن معظم أساليب الفئة InputStream ، في حالة حدوث خطأ ، تطرح استثناء نوع IOException ، يجب إجراء جميع العمليات في كتلة المحاولة ، ويجب وضع طريقة إغلاق () في كتلة أخيرة بحيث تعمل بغض النظر عن نتيجة العمل في نص التجربة.

اجهة AutoCloseable يقلل بشكل كبيرمقدار الشفرة الفنية ، حيث إنها تسمح للأسلوب close () بالعمل تلقائيًا وعدم إضافة حظر نهائي إلى شفرتك. إذا كنت تستخدم الإصدار السابع أو الأحدث من Java ، فيمكن وضع InputStream في ما يسمى المحاولة مع الموارد ، والتي تأخذ جميع العمليات لإغلاق الدفق.

جافا إدخال إلى السلسلة

النظر في الطرق الأساسية للفئة InputStream:

  • int available () - إرجاع عدد وحدات البايت المتوفرة للقراءة؛
  • int قراءة () - يأخذ البايت الحالي من المورد وإرجاعها في تمثيل عدد صحيح؛ إذا تمت قراءة كافة البايتات ، ترجع -1؛
  • int قراءة (بايت [] عازلة) - يقرأ البايتات المتاحة فيالمخزن المؤقت المحدد كصفيف من بايت النوع (عدد قراءة البايت يساوي حجم المخزن المؤقت المحدد ؛ يقوم بإرجاع عدد وحدات البايت المقروءة ؛ إذا كانت كل البايتات المتاحة تقرأ ، ترجع -1) ؛
  • int read(byte[] буфер, int смещение, int عدد البايتات) - الحمل الزائد للطريقة السابقة ، يفعل نفس الشيء ، ولكن من الموضع المشار إليه في "الإزاحة" ويقرأ بقدر عدد البايتات المحددة ؛
  • التخطي الطويل (عدد البايتات الطويل) - يتخطى العدد المحدد للبايت ويعيد العدد الفعلي للتخطي.

يتم تنفيذ InputStream بواسطة عدة فئات مصممة للعمل مع مصادر مختلفة وأنواع البيانات. يوجد أدناه شجرة الوراثة.

جافا المدخلات

قراءة الملفات

دفق بايت لقراءة المعلومات من الملفاتيتم تنفيذها بواسطة فئة FileInputStream. لفتح ملف لقراءة وحدات البايت ، يكفي إنشاء مثيل لهذا الفصل الدراسي ، وتمريره إلى المُنشئ اسم الملف كوسيطة. إذا كان الملف الذي يحمل الاسم المنقول غير موجود ، فسيتم إنشاء استثناء من نوع FileNotFoundException.

في حالة فتح الملف بنجاح ، يتم تنفيذ العمل باستخدام الطرق الموضحة أعلاه ، لأن FileInputStream هو وريث InputStream.

قراءة أنواع البيانات البدائية

المثال السابق وصف العمل معقيم البايت التي يمكن تفسيرها كأحرف. ولكن ماذا لو كنا بحاجة إلى قراءة قيمة صحيحة أو كسرية أو منطقية؟ للقيام بذلك ، يتم توسيع Java InputStream بشكل غير مباشر بواسطة فئة DataInputStream. هذه الفئة هي عبارة عن غلاف لبرنامج InputStream ، والذي يتم تمريره إليه عند تكوينه كوسيطة للمنشئ. هذا النوع من الدفق يقرأ البيانات في شكل ثنائي.

DataInputStream أيضا بتنفيذ واجهة DataInput وأساليبها لقراءة أنواع البيانات البدائية. فيما يلي قائمة بهذه الطرق.

java io inputstream

أسماء الطرق تتحدث عن نفسها - كل منها مصمم لقراءة نوع بيانات معين.

تدفق المدخلات المخزن

يتم تنفيذ دفق بيانات قراءة مخزّنةفئة BufferedInputStream في جاوة. يتم دمج inputStream بواسطة هذا الفصل. يضيف هذا الفصل دفق إلى المخزن المؤقت الذي يسمح لك بقراءة ليس واحد ولكن عدة وحدات بايت في كل مرة. هذا يجعل من الممكن تحسين أداء العملية بشكل ملحوظ. BufferedInputStream هو سليل غير مباشر لـ InputStream ، وبالتالي ، يرث جميع الطرق المذكورة أعلاه.

يحتوي هذا الفصل على اثنين من المنشئات:

  • BufferedInputStream (دفق إدخال InputStream) ؛
  • BufferedInputStream (دفق الإدخال InputStream ، حجم المخزن المؤقت int)

من الممكن أن نفهم من توقيع المنشئين أن أول واحد يحدد حجم المخزن المؤقت بشكل افتراضي ، بينما في الثاني هناك فرصة لتعيينه يدويا.

استنتاج

نظرنا في التطبيقات الرئيسية من InputStream. إذا كنت بحاجة إلى تحويل وحدات البايت الناتجة إلى سلسلة ، ثم Java InputStream to String () ، للأسف ، ليس فوق طاقتها ، لذلك تحتاج إلى استخدام أدوات مساعدة خاصة ، على سبيل المثال IOUtils من مكتبة Apache Commons.

يحب:
0
الوظائف الشعبية
التطور الروحي
طعام
ذ