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

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

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


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

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

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

File f = new File("C:\\MyFiles\\test.txt")
InputStream is = new FileInputStream(f);
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!");
}
}
}
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
1 2 3 4 5 6 7 8 9 10