أتذكر أنه عندما بدأت في تعلم Java لأول مرة ، لم أفهم تدفق Java IO ، لذلك كتبت هذا المقال وآمل أن يكون من المفيد لأولئك الذين بدأوا للتو تعلم Java وتسهيل استفسارهم في المستقبل. تنقسم تدفقات Java IO إلى تدفقات الأحرف (القارئ ، الكاتب) وتيارات البايت (InputStream ، OutputStream). تدفقات البايت ، كما يوحي الاسم ، تتمثل تدفقات البايت في قراءة محتويات الملفات في صفائف البايت ثم إخراجها إلى ملف آخر. أصغر وحدة لعمليات تدفق الأحرف هي الأحرف. دعونا نلقي نظرة على نظرة عامة على تدفقات IO:
ما يلي هو أول شيء يقرأ الملف وكتابةه من خلال دفق الأحرف:
package lib ؛ import java.io.bufferedreader ؛ import java.io.file ؛ import java.io.filenotfoundException ؛ import java.io.filereader ؛ import java.io ملف ("f: //test.txt") ؛ // طريقة كتابة حرف دفق السلسلة العامة للكتابة () يلقي ioException {String str = "" ؛ عدد السلسلة = "" ؛ حاول {// استخدام دفق الحرف لقراءة الملف bufferreader bf = جديد bufferedReader (جديد fileReader (f)) ؛ بينما (صحيح) {// اقرأ كل سطر من البيانات وقم بتعيينه إلى str if ((count = bf.readline ())! = null) {str += count ؛ } آخر {break ؛ }} // أغلق الدفق bf.close () ؛ } catch (fileNotFoundException e) {e.printStackTrace () ؛ } إرجاع str ؛ } // طريقة دفق الحرف قراءة public void getReader () {try {// حيث يعني True إضافة في نهاية محتوى الملف الأصلي. إذا لم يتم كتابة ، فهذا يعني تفريغ الملف وإضافة المحتوى. PrintWriter PW = New PrintWriter (FilewRiter جديد (F ، True)) ؛ pw.write ("اختبار سلسلة إدخال إلى ملف 2") ؛ pw.close () ؛ } catch (ioException e) {E.PrintStackTrace () ؛ }} public static void main (string [] args) يلقي ioException {test test = new test () ؛ // أدخل السلسلة في test.getReader () ؛ // اقرأ سلسلة السلسلة المقابلة str = test.writeinfile () ؛ // open system.out.println ("محتوى الملف:"+str) ؛ }}هناك تعليقات في النقاط الرئيسية للرمز أعلاه ، لذلك لن أخوض في التفاصيل واحدة تلو الأخرى. الشيء الرئيسي هو أنك لا تنسى الإغلاق بعد استخدام الدفق.
ثم العمل على الملف من خلال دفق بايت ، ونسخ محتويات ملف إلى آخر:
package com.file.test2 ؛ import java.io ioException {// الملف المصدر المراد نسخه f = ملف جديد ("d: //test.txt") ؛ // ملف ملف الهدف f2 = ملف جديد ("d: //test2.txt") ؛ // تحديد مجموعة من نوع البايت لتخزين محتوى القراءة بايت [] B = New Byte [1024] ؛ طول int حاول {// تحديد دفق القراءة fileInputStream في = newInputStream (f) ؛ . // إخراج محتوى الملف إلى ملف آخر بينما ((طول = in.read (b))! =-1) {out.write (b ، 0 ، length) ؛ } out.close () ؛ in.close () ؛ } catch (fileNotFoundException e) {e.printStackTrace () ؛ }}}في تشغيل دفق البايت ، يجب أن يكون الملف المصدر على السطر 13 موجودًا. يمكنك تغيير مسار الملف بنفسك حسب الحاجة. تحتاج فقط إلى الوجود. خلاف ذلك ، سيتم الإبلاغ عن خطأ في عدم العثور على الملف. في الوقت نفسه ، إذا كنت ترغب في إخراج محتوى دفق البايت القراءة على وحدة التحكم ، فيمكنك إضافة رمزين بين الأسطر 27 و 28: in.read (B ، 0 ، B.Length) ؛ System.out.println (سلسلة جديدة (ب)) ؛
ما ورد أعلاه هي العمليات ذات الصلة من تدفقات الأحرف وتيارات البايت. في الواقع ، فإن الكود ليس صعبًا ، فهو يتعلق بشكل أساسي بفهم المرء. سيكون لدى الجميع طرق مختلفة لفهم نفس المشكلات. بالطبع ، بالنسبة لنا المبرمجين ، بالإضافة إلى التفكير أكثر ، نحتاج أيضًا إلى بذل المزيد من الجهد. أخيرًا ، آمل أن يكون المحتوى أعلاه مفيدًا للجميع ، ويرجى الاستمرار في دعم هذا الموقع.