ה כיתת PipedReader ב-Java הוא חלק מה חבילה והיא משמשת לקריאת נתוני תווים מצינור. מחלקה זו מאפשרת תקשורת בין חוטים כאשר שרשור אחד כותב נתונים באמצעות PipedWriter ואחר קורא אותם באמצעות PipedReader.
תכונות של PipedReader Class:
- זה מאפשר קריאה של נתונים דרך צינור.
- הוא משתמש במאגר כדי לאחסן נתונים שהתקבלו מה-PipedWriter.
- זה עובד עם PipedWriter כדי לוודא שהנתונים מועברים בבטחה בין שרשורים.
- אם הצינור נשבר הוא זורק שגיאה.
מה זה Pipe ב-Java?
ב-Java משתמשים ב-pipe לקישור שני חוטים. חוט אחד משמש לשליחת נתונים דרך הצינור והחוט השני קורא את הנתונים. אם החוט ששולח את הנתונים עוצר או קורס אז הצינור נחשב כשבור.
הצהרת כיתת PipedReader
ההצהרה של מחלקת PipedReader היא:
מחלקה ציבורית PipedReader מרחיבה את Reader
כל הממשקים המיושמים:
- ניתן לסגירה: ממשק זה משמש לסגירת הזרם ולשחרור משאבים כאשר אין צורך עוד.
- ניתן לסגירה אוטומטית: ממשק זה מאפשר ניהול משאבים אוטומטי בהצהרות נסה עם משאבים.
- קָרִיא: ממשק זה מאפשר קריאת נתונים מהזרם.
בונים של PipedReader
מחלקה זו מורכבת מארבעה בנאים שבעזרתם נוכל ליצור אובייקט של מחלקה זו בדרכים שונות. להלן הבנאים הזמינים במחלקה זו:
1. PipedReader(): בנאי זה יוצר PipedReader שעדיין לא מחובר לאף סופר.
תַחבִּיר:
ציבורי PipedReader()
מעבר לא-סדר של עץ בינארי
2. PipedReader(int pipeSize): בנאי זה יוצר aPipedREader עם גודל צינור מוגדר.
תַחבִּיר:
PipedReader ציבורי (int pSize)
3. PipedReader(PipedWriter src): בנאי זה יוצר PipedReader שמחובר ל- PipedWriterStream src.
PipedReader ציבורי (PipedWriter src)
4. PipedReader(PipedWriter src int pipeSize): בנאי זה יוצר PipedReader מחובר בגודל מוגדר ומקושר ל-PipedWriter הנתון.
תַחבִּיר:
PipedReader ציבורי (PipedWriter src int pSize)
Java PipedReaderMethods
התמונה למטה מדגימה את השיטות של מחלקה PipedReader.

כעת נדון בפירוט על כל שיטה בזה אחר זה:
1. קרא(): שיטה זו משמשת כדי לקבל את התו הבא מה-PipedReader. זה חוסם עד שיש נתונים לקרוא או מתרחשת שגיאה.
תַחבִּיר:
public int read() זורק את IOException
- פָּרָמֶטֶר: שיטה זו אינה לוקחת שום פרמטר.
- סוג החזרה: שיטה זו מחזירה את התו הבא כמספר שלם או מחזירה -1 אם מגיעים לסוף הזרם.
דוּגמָה:
Java// Demonstrating the working // of read() method import java.io.*; public class GeeKs { public static void main(String[] args) throws IOException { PipedReader r = new PipedReader(); PipedWriter w = new PipedWriter(); // Connect the reader and writer r.connect(w); // Write data to the PipedWriter w.write(71); System.out.println('Read: ' + (char) r.read()); w.write(69); System.out.println('Read: ' + (char) r.read()); w.write(75); System.out.println('Read: ' + (char) r.read()); } }
תְפוּקָה
Read: G Read: E Read: K
2. read(char[] carray int offset int maxlen): שיטה זו משמשת לקריאת תו maxlen מ-PipedReader Stream למערך התווים. השיטה חוסמת אם מגיעים לסוף הזרם או נזרק חריג.
תַחבִּיר:
public int read(char[] carray int offset int maxlen) זורק IOException
- פָּרָמֶטֶר: שיטה זו כוללת שלושה פרמטרים המפורטים להלן:
- carray: זהו המאגר שאליו ייקראו הנתונים.
- לְקַזֵז: זוהי נקודת ההתחלה במערך
- מקסלן: המספר המרבי של תווים שיש לקרוא במערך.
- סוג החזרה: שיטה זו מחזירה מקסימום בתים של הנתונים כאשר ערך מספר שלם או החזר -1 הוא הגיע לסוף הזרם
דוּגמָה:
Java// Demonstrating the working // of read(char[] carray int offset int maxlen) import java.io.*; public class Geeks { public static void main(String[] args) throws IOException { PipedReader r = new PipedReader(); PipedWriter w = new PipedWriter(); r.connect(w); // Write data to PipedWriter w.write(71); // G w.write(69); // E w.write(75); // K w.write(83); // S // Read data into an array char[] b = new char[5]; r.read(b 0 5); System.out.print('Read characters: '); for (char c : b) { System.out.print(c); } } }
תְפוּקָה
Read characters: GEKS
מופע ב-java
3. סגור(): שיטה זו משמשת לסגירת PipedReader.
תַחבִּיר:
public void close() זורק את IOException
- פָּרָמֶטֶר: שיטה זו אינה לוקחת שום פרמטר
- סוג החזרה: השיטה הזו לא מחזירה כלום
דוּגמָה:
Java// Demonstrating the working // of close() method import java.io.*; public class Geeks { public static void main(String[] args) throws IOException { PipedReader r = new PipedReader(); PipedWriter w = new PipedWriter(); r.connect(w); w.write(71); // Close the reader r.close(); System.out.println('Stream closed.'); } }
תְפוּקָה
Stream closed.
4. מוכן(): שיטה זו משמשת כדי לבדוק אם הזרם מוכן לקריאה.
תַחבִּיר:
public boolean ready() זורק את IOException
- פָּרָמֶטֶר: שיטה זו אינה לוקחת שום פרמטר
- סוג החזרה: שיטה זו מחזירה true אם הזרם מוכן לקריאה אחרת הוא מחזיר false.
דוּגמָה:
Java// Demonstrating the working // of ready() method import java.io.*; public class Geeks { public static void main(String[] args) throws IOException { PipedReader r = new PipedReader(); PipedWriter w = new PipedWriter(); r.connect(w); w.write(71); // Check if the stream is ready to be read System.out.println('Stream is ready to be read: ' + r.ready()); } }
תְפוּקָה
Stream is ready to be read: true
5. סגור(): שיטה זו משמשת לסגירת זרמי PipedReader.
תַחבִּיר:
public void close()
- פָּרָמֶטֶר: שיטה זו אינה לוקחת שום פרמטר.
- סוג החזרה: השיטה הזו לא מחזירה כלום.
דוּגמָה:
Java// Demonstrating the working // of close() method import java.io.*; public class Geeks{ public static void main(String[] args) { try { // Create a PipedReader and PipedWriter PipedReader r = new PipedReader(); PipedWriter w = new PipedWriter(); // Connect the PipedReader to the PipedWriter r.connect(w); // Write a character to the PipedWriter w.write('A'); // Read and print the character from the PipedReader System.out.println('Read: ' + (char) r.read()); // Output: A // Close the PipedReader stream r.close(); System.out.println('Stream closed.'); } catch (IOException e) { e.printStackTrace(); } } }
תְפוּקָה
Read: A Stream closed.צור חידון