Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

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 جاهزاً, يمكنك إستخدام الكثير من الدوال الجاهزة لقراءة الملف أو لفعل أي شيء آخر.

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