0Pricing
Java Academy · درس

التدفقات المخبّأة

تعلّم التدفقات المخبّأة: BufferedInputStream وBufferedOutputStream لإجراء عمليات إدخال وإخراج فعّالة للبايتات.

التدفقات المخبّأة درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 3 دروس في المجموع.

مقدمة

تسرّع التدفقات ذات المخزن المؤقت عمليات إدخال وإخراج الملفات. فهي تجمع عمليات القراءة والكتابة الصغيرة العديدة في عمليات أكبر.

مفهوم BufferedInputStream

تغلّف BufferedInputStream كائن InputStream وتقرأ أجزاء من البايتات في الذاكرة. فتصبح القراءة أسرع عند إجراء العديد من الاستدعاءات الصغيرة.

الشفرة: BufferedInputStream

يقرأ هذا الرمز البايتات من ملف باستخدام التخزين المؤقت. وتعرض المخرجات قيم البايتات مفصولة بمسافات.

public class Main {
  public static void main(String[] args) {
    java.nio.file.Path p = java.nio.file.Paths.get("data.bin");
    try (java.io.BufferedInputStream bis = new java.io.BufferedInputStream(java.nio.file.Files.newInputStream(p))) {
      int b;
      while ((b = bis.read()) != -1) {
        System.out.print(b + " ");
      }
    } catch (java.io.IOException e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

مفهوم BufferedOutputStream

يجمع BufferedOutputStream البايتات في الذاكرة قبل الكتابة. ويقلل ذلك عدد عمليات الكتابة على القرص.

الشفرة: BufferedOutputStream

يكتب هذا الرمز خمسة بايتات إلى out.bin. ويفرغ BufferedOutputStream البيانات على دفعات لتحقيق الكفاءة.

public class Main {
  public static void main(String[] args) {
    java.nio.file.Path p = java.nio.file.Paths.get("out.bin");
    try (java.io.BufferedOutputStream bos = new java.io.BufferedOutputStream(java.nio.file.Files.newOutputStream(p))) {
      for (int i = 0; i < 5; i++) {
        bos.write(i); // write 5 bytes
      }
    } catch (java.io.IOException e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

الشفرة: النسخ باستخدام التدفقات ذات المخزن المؤقت

تجعل التدفقات ذات المخزن المؤقت نسخ الملفات بسيطًا وفعّالًا. وتُقرأ الملفات وتُكتب باستخدام مخازن مؤقتة للبايتات.

public class Main {
  public static void main(String[] args) {
    java.nio.file.Path in = java.nio.file.Paths.get("data.bin");
    java.nio.file.Path out = java.nio.file.Paths.get("copy.bin");
    try (java.io.BufferedInputStream bis = new java.io.BufferedInputStream(java.nio.file.Files.newInputStream(in));
         java.io.BufferedOutputStream bos = new java.io.BufferedOutputStream(java.nio.file.Files.newOutputStream(out))) {
      int b;
      while ((b = bis.read()) != -1) {
        bos.write(b);
      }
    } catch (java.io.IOException e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

التحقق من التدفقات ذات المخزن المؤقت

تحقق سريع: لماذا نستخدم BufferedInputStream أو BufferedOutputStream؟

خلاصة

خلاصة: تحسّن التدفقات ذات المخزن المؤقت الأداء من خلال جمع عمليات القراءة والكتابة الصغيرة في عمليات أكبر.

الأسئلة الشائعة

هل درس «التدفقات المخبّأة» مجاني؟

نعم — نص درس «التدفقات المخبّأة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 3 دروس في المجموع.

ماذا ستتعلم في «التدفقات المخبّأة»؟

تعلّم التدفقات المخبّأة: BufferedInputStream وBufferedOutputStream لإجراء عمليات إدخال وإخراج فعّالة للبايتات. تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟

لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.

كم من الوقت يستغرق درس «التدفقات المخبّأة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟

نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. Path وFiles في java.nio.file
  2. قراءة وكتابة الملفات النصية
  3. التدفقات المخبّأة
← العودة إلى Java Academy