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

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

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


يحتوي هذا الكلاس على أكثر من كونستركتور.

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

OutputStream is = new FileOutputStream("C://MyFiles//test.txt")

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

File f = new File("C://MyFiles//test.txt")
OutputStream is = new FileOutputStream(f); 

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

الدالة مع تعريفها
1 public void close() throws IOException تغلق الـ OutputStream و تقطع الإتصال بين الـ Stream و أي مصدر كان متصلاً فيه.
2 public void write(int b) throws IOException تكتب الـ byte التي تمرر لها كـ argumentفي الـ OutputStream.
3 public void write(byte[] b) throws IOException تكتب مجموعة الـ bytes الموجودين في المصفوفة b في الـ OutputStream.
4 public void wirte(byte[] b, int off, int len) throws IOException تكتب مجموعة من الـ bytes الموجودين في المصفوفة b في الـ OutputStream.
المتغير off يقصد به من أي عنصر في المصفوفة b سيكتب في الـ OutputStream.
المتغير len يقصد به كم عنصر من عناصر المصفوفة b سيكتب في الـ OutputStream.


مثال

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

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