Java الكلاس FileInputStream في جافا

يستخدم هذا الكلاس لقراءة البيانات من الملفات. و هو يحتوي على أكثر من كونستركتور.


الكونستركتور التالي نمرر له إسم الملف كـ String لإنشاء كائن الـ InputStream و الذي من خلاله يمكن قراءة الملف. مثال:

InputStream is = new FileInputStream("C:\\MyFiles\\test.txt")
	

الكونستركتور التالي نمرر له كائن نوعه File لإنشاء كائن الـ InputStream و الذي من خلاله يمكن قراءة الملف. يجب إنشاء كائن الـ File قبله. مثال:

File f = new File("C:\\MyFiles\\test.txt")
InputStream is = new FileInputStream(f);
	


بعد أن يصبح كائن الـ InputStream جاهزاً, يمكنك إستخدام الكثير من الدوال الجاهزة لقراءة الملف أو لفعل أي شيء آخر.

الدالة مع تعريفها
public void close() throws IOException تغلق الـ InputStream و تقطع الإتصال بين الـ Stream و أي مصدر كان متصلاً فيه.
public int read() throws IOException في كل مرة تقرأ byte جديدة من بيانات الـ InputStream و ترجعها كقيمة نوعها int بين 255-0.
ترجع 1- إذا وصلت لنهاية الملف.
public int read(byte[] b) throws IOException تقرأ مجموعة جديدة من الـ bytes من بيانات الـ InputStream في كل مرة تستدعى فيها و تخزنهم في المصفوفة b و ترجعها كـ int.
ترجع 1- إذا وصلت لنهاية الملف.
public int available() throws IOException ترجع عدد الـ bytes الذي يمكن قراءتهم من الـ InputStream و ترجع 0 عند الوصول لنهاية الملف.


مثال

في هذا المثال سنقوم بإنشاء ملف جديد و كتابة بعض البيانات فيه, ثم سنقوم بقراءة هذه البيانات من الملف.

Main.java
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
 
public class Main {
 
    public static void main(String[] args) {
 
        try {
            // لخلق ملف جديد و الذي سنكتب قيم المصفوفة فيه OutputStream هنا قمنا بإنشاء مصفوفة, و قمنا بإنشاء كائن نوعه
            byte[] bytes = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
            OutputStream os = new FileOutputStream("test.txt");
 
            // هنا قمنا بكتابة قيم المصفوفة في الملف
            for (int i=0; i<bytes.length; i++) {
                os.write( bytes[i] );
            }
            os.close();
 
            // و الذي سنقرأ بواسطته محتوى الملف InputStream هنا قمنا بإنشاء كائن نوعه
            InputStream is = new FileInputStream("test.txt");
 
            // size الموجودين في الملف في المتغير bytes هنا قمنا بتخزين عدد الـ
            int size = is.available();
 
            // موجودة في الملف byte هنا قمنا بقراءة و عرض كل
            for (int i=0; i<size; i++) {
                System.out.print( is.read() + " " );
            }
            is.close();
        }
        catch(IOException e) {
            System.out.println("There is IOException!");
        }
 
    }
 
}
		

سنحصل على النتيجة التالية عند التشغيل.

1 2 3 4 5 6 7 8 9 10
		

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة