English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، سنتعلم عن فئة Java InputStream وطرقها من خلال مثال.
فئة InputStream في حزمة java.io هي فئة فوقية抽象ة، تمثل تدفق البايتات في الدخول.
بما أن InputStream هي فئة抽象ة، فإنها ليست مفيدة بشكل مباشر. ولكن يمكن استخدام فئات فرعية لها لقراءة البيانات.
للبدء في استخدام وظائف InputStream، يمكننا استخدام فئات فرعية.
في الدرس التالي، سنتعلم جميع هذه الفئات الفرعية.
لإنشاء تدفق إدخال، يجب علينا أولاً استيراد حزمة java.io.InputStream. بعد استيراد الحزمة، يمكننا إنشاء تدفق إدخال.
//إنشاء InputStream InputStream object1 = new FileInputStream();
في هذا الموضع، نستخدم FileInputStream لإنشاء تدفق إدخال. لأن InputStream هو Class抽象ة. لذلك، لا يمكننا إنشاء Object من InputStream.
ملاحظة: يمكننا أيضًا إنشاء تدفقات إدخال من فرعات أخرى ل InputStream.
يقدم Class InputStream methods مختلفة يتم تنفيذها بواسطة فرعاتها.
read() - قراءة بيت واحد من تدفق الإدخال
read(byte[] array) - قراءة البايتات من تدفق الإدخال ووضعها في المجموعة المحددة
available() - العودة إلى عدد البايتات المتاحة في تدفق الإدخال
mark() - وضع علامة على موقع البيانات في تدفق الإدخال
reset() - عودة نقطة التحكم إلى النقطة التي تم فيها تعيين mark
markSupported() - التحقق مما إذا كان تدفق الإدخال يدعم methods mark() و reset()
skips() - التخطي والرمي بعيدًا عن عدد البايتات المحددة في تدفق الإدخال
close() - إغلاق تدفق الإدخال
هذه هي الطريقة التي يتم بها تنفيذ methods من قبل الفئة FileInputStream
افترض أن لدينا ملفًا يُدعىinput.txtالمحتوى التالي في الملف،
هذا نص سطر من الملف.
لنحاول استخدام FileInputStream (فرع من InputStream) لقراءة هذا الملف.
import java.io.FileInputStream; import java.io.InputStream; public class Main public static void main(String args[]) byte[] array = new byte[100]; try InputStream input = new FileInputStream("input.txt"); System.out.println("البايتات المتاحة في الملف: " + input.available()); //قراءة البايتات من تدفق الإدخال input.read(array); System.out.println("بيانات المستند من الملف:"); //حول مجموعة البايتات إلى نص String data = new String(array); System.out.println(data); //إغلاق تدفق الإدخال input.close(); } catch (Exception e) { e.getStackTrace(); } } }
نتائج الإخراج
البites المتاحة في الملف: 35 بيانات تم قراءتها من الملف: هذا نص سطر من الملف.
في المثال أعلاه، استخدمنا فئة FileInputStream لإنشاء تدفق الإدخال. تدفق الإدخال مرتبط بالملف.input.txtالروابط.
InputStream input = new FileInputStream("input.txt");
لمنinput.txtلقراءة البيانات من الملف، قمنا بتنفيذ هذين الأسلوبين.
input.read(array); //قراءة البيانات من تدفق الإدخال input.close(); //إغلاق تدفق الإدخال