FilterInputStream
تتمثل وظيفة FilterInputStream في "تغليف تدفقات الإدخال الأخرى وتزويدها بوظائف إضافية". فئاتها الفرعية شائعة الاستخدام هي BufferedInputStream و DatainputStream.
تتمثل وظيفة BufferedInputStream في توفير "وظيفة التخزين المؤقت لتيارات الإدخال ، وكذلك وظائف Mark () و Reset ()".
يتم استخدام DataInputStream لتزيين تدفقات الإدخال الأخرى ، والتي "تتيح للتطبيقات قراءة أنواع بيانات Java الأساسية من دفق الإدخال الأساسي بطريقة مستقلة عن الجهاز." يمكن للتطبيقات استخدام DataOutputStream لكتابة البيانات التي تقرأها DatainputStream.
رمز المصدر FilterInputStream (استنادًا إلى JDK1.7.40):
Package Java.io ؛ فئة الفئة العامة FilterInputStream يمتد inputStream {محمية InportStream في ؛ FilterInputStream المحمي (inputStream in) {this.in = in ؛ } public int read () remrows ioException {return in.read () ؛ } int public read (byte b []) يلقي ioException {return read (b ، 0 ، b.Length) ؛ } int public read (byte b [] ، int Off ، int len) يرمي ioException {return in.read (b ، Off ، len) ؛ } Skip Long Skip (long n) يلقي ioException {return in.skip (n) ؛ } public int Available () remrows ioException {return in.available () ؛ } public void close () remrows ioException {in.close () ؛ } علامة void المزامنة العامة (int readlimit) {in.mark (readlimit) ؛ } RESET VOID المتزامن العام () يلقي ioException {in.reset () ؛ } marksupported () {return in.marksupported () ؛ }} FilterOutputStream
تتمثل وظيفة FilterOutputStream في "تغليف تدفقات الإخراج الأخرى وتزويدها بوظائف إضافية". ويشمل بشكل أساسي bufferedOutputStream و DataOutputStream و PrintStream.
(01) تتمثل وظيفة BufferedOutputStream في توفير "وظيفة التخزين المؤقت لدفق الإخراج".
(02) يتم استخدام DataOutputStream لتزيين تدفقات الإخراج الأخرى ، باستخدام تدفقات إدخال DataOutputStream و DatainputStream ، "السماح للتطبيقات بقراءة وكتابة أنواع بيانات Java الأساسية من دفق الإدخال الأساسي بطريقة مستقلة عن الجهاز."
(03) يتم استخدام PrintStream لتزيين تدفقات الإخراج الأخرى. يضيف وظائف إلى تدفقات الإخراج الأخرى ، مما يسمح لهم بطباعة تمثيلات قيمة البيانات المختلفة بسهولة.
FilterOutputStream Source Code (استنادًا إلى JDK1.7.40):
Package Java.io ؛ فئة الفئة العامة FilterOutputStream يمتد OutputStream {محمية OutputStream Out ؛ FilterOutPutStream (OutputStream Out) {this.out = out ؛ } public void write (int b) يلقي ioException {out.write (b) ؛ } public void write (byte b []) remrows ioException {write (b ، 0 ، b.Length) ؛ } public void write (byte b [] ، int Off ، int len) يرمي ioException {if ((Off | len | (B.Length - (Len + Off)) | (Off + Len)) <0) رمي indexoutofboundsexception () ؛ لـ (int i = 0 ؛ i <len ؛ i ++) {write (b [Off+i]) ؛ }} public void flush () remrows ioException {out.flush () ؛ } public void close () remrows ioException {try {flush () ؛ } catch (تجاهل ioException) {} out.close () ؛ }}