ה שיעור PushbackReader ב-Java הוא חלק מה- java.io.package ומשמש לקריאת תווים מזרם. מחלקה זו מאפשרת לנו לדחוף דמויות בחזרה לזרם.
תכונות של PushbackReader Class:
- מחלקה זו משתמשת במאגר המאפשר לנו לדחוף תווים בחזרה לזרם.
- שיעור זה מצוין לקריאת טקסט ולבדיקת תווים מבלי להשתמש בהם מיד. אם הדמות אינה נחוצה ניתן לדחוק אותה לאחור.
דוּגמָה:
Java
// Demonstrating the working // of PushbackReader import java.io.*; public class Geeks { public static void main(String[] args) { String s = 'Hello World!'; StringReader sr = new StringReader(s); // Create a PushbackReader with the StringReader PushbackReader pr = new PushbackReader(sr); try { // Read the first character int char1 = pr.read(); System.out.println('Read character: ' + (char) char1); // Push this character back into the stream pr.unread(char1); // Read the same character again (since we pushed it back) int char2 = pr.read(); System.out.println('Read character again: ' + (char) char2); // Continue reading the next character int char3 = pr.read(); System.out.println('Next character: ' + (char) char3); // Close the reader pr.close(); } catch (IOException e) { e.printStackTrace(); } } }
תְפוּקָה
Read character: H Read character again: H Next character: e
הצהרת מחלקת PushbackReader
מחלקת ההצהרה של PushbackReader רשומה להלן:
מיון מעטפת
מחלקה ציבורית PushbackReader מרחיבה את FilterReader
כל הממשקים המיושמים:
- ניתן לסגירה: ממשק זה משמש לשחרור משאבים
- ניתן לסגירה אוטומטית: ממשק זה מאפשר סגירה אוטומטית בהצהרת נסה עם משאבים.
- קָרִיא: ממשק זה משמש לקריאת נתונים מהאובייקט.
קונסטרוקטים ב-PushbackReader
מחלקה זו מורכבת משני בנאים שבעזרתם נוכל ליצור אובייקט של מחלקה זו בדרכים שונות. להלן הבנאים הזמינים במחלקה זו:
1. PushbackReader (דחיפה של הקורא): הבנאי הזה משמש ליצירת PushbackReader חדש עם מאגר דחיפה המוגדר כברירת מחדל.
תַחבִּיר:
Public PushbackReader (דחיפת קורא)
דוּגמָה:
Java// Demonstrating the working // of PushbackReader(Reader push) import java.io.*; public class Geeks { public static void main(String[] args) { // String to be read String s = 'Hello World!'; // Create a StringReader to read from the string StringReader sr = new StringReader(s); // Create a PushbackReader with the StringReader PushbackReader pr = new PushbackReader(sr); try { // Read and print characters int charRead; while ((charRead = pr.read()) != -1) { System.out.print((char) charRead); } // Close the PushbackReader pr.close(); } catch (IOException e) { e.printStackTrace(); } } }
תְפוּקָה
Hello World!
2. PushbackReader (גודל דחיפה של הקורא): בנאי זה מאפשר לנו לציין את גודל מאגר הדחיפה
תַחבִּיר:
Public PushbackReader (גודל דחיפה של הקורא)
דוּגמָה:
Java// Demonstrating the working // of PushbackReader(Reader push int size) import java.io.*; public class Geeks{ public static void main(String[] args) { // String to be read String s = 'Hello World!'; // Create a StringReader to read from the string StringReader sr = new StringReader(s); // Create a PushbackReader with the StringReader // and a specified buffer size of 20 PushbackReader pr = new PushbackReader(sr 20); try { // Read and print characters int charRead; while ((charRead = pr.read()) != -1) { System.out.print((char) charRead); } // Close the PushbackReader pr.close(); } catch (IOException e) { e.printStackTrace(); } } }
תְפוּקָה
Hello World!
Powershell גדול או שווה
שיטות Java PushbackReader
התמונה למטה מדגימה את השיטות של המחלקה CharArrayWriter.

כעת נדון בפירוט על כל שיטה בזה אחר זה:
1. קרא(): שיטה זו משמשת לקריאת תו אחד בכל פעם מהזרם
תַחבִּיר:
public int read()
- פָּרָמֶטֶר: שיטה זו אינה לוקחת שום פרמטר.
- סוג החזרה: שיטה זו מחזירה את התו הנקרא כמספר שלם או מחזירה -1 כאשר מגיעים לסוף הזרם.
2. read(char[] carray int offset int maxlen): שיטה זו משמשת לקריאת חלק של תווים.
תַחבִּיר:
public int read(char[] carray int offset int maxlen)
- פָּרָמֶטֶר: שיטה זו כוללת שלושה פרמטרים המפורטים להלן
- char[] carray: זהו מערך תווים שבו יהיו דמויות שנקראו מְאוּחסָן.
- int offset: זוהי נקודת ההתחלה במערך
- int maxlen: זהו המספר המרבי של תווים לקריאה.
- סוג החזרה: שיטה זו מחזירה את מספר התווים שנקראו
מעלה
3. סגור(): שיטה זו משמשת לסגירת הקורא
תַחבִּיר:
public void close()
- פָּרָמֶטֶר: שיטה זו אינה לוקחת שום פרמטר
- סוג החזרה: השיטה הזו לא מחזירה כלום.
4. mark(int readAheadLimit): שיטה זו משמשת לסימון המיקום הנוכחי בזרם
תַחבִּיר:
סימן ריק ציבורי (int readAheadLimit)
- פָּרָמֶטֶר: שיטה זו כוללת פרמטר אחד readAheadLimit המציין את המספר המרבי של תווים שניתן לקרוא לפני שמיקום הסימון הופך לבלתי חוקי.
- סוג החזרה: השיטה הזו לא מחזירה כלום
5. דלג (לאורך n): שיטה זו משמשת כדי לדלג על מספר מסוים של תווים.
תַחבִּיר:
דילוג ארוך ציבורי(לונג n)
- פָּרָמֶטֶר: שיטה זו כוללת פרמטר אחד ארוך n שהוא מספר התווים שיש לדלג בזרם.
- סוג החזרה: שיטה זו מחזירה את מספר התווים שדילג עליהם
6. איפוס(): שיטה זו משמשת כדי לחזור למיקום שבו נקרא mark() .
sdlc
תַחבִּיר:
public void reset()
- פָּרָמֶטֶר: שיטה זו אינה לוקחת שום פרמטר
- סוג החזרה: השיטה הזו לא מחזירה כלום
7. markSupported(): שיטה זו אומרת אם הזרם תומך בסימון או לא
תַחבִּיר:
mark Boolean publicSupported()
- פָּרָמֶטֶר: שיטה זו אינה לוקחת שום פרמטר
- סוג החזרה: שיטה זו מחזירה false מכיוון שהסימון אינו נתמך.
8. מוכן(): שיטה זו בודקת אם הזרם מוכן לקריאה או לא.
תַחבִּיר:
מוכן בוליאני ציבורי()
- פָּרָמֶטֶר: שיטה זו אינה לוקחת שום פרמטר
- סוג החזרה: שיטה זו מחזירה אמת אם הזרם מוכן.
9. unread(int c): שיטה זו משמשת לדחיפת דמות חזרה לזרם.
תַחבִּיר:
ריק ציבורי שלא נקרא (int c)
- פָּרָמֶטֶר: שיטה זו לוקחת פרמטר בודד שהוא c שהוא התו שיידחף חזרה לזרם.
- סוג החזרה: השיטה הזו לא מחזירה כלום.
10. unread(char[] carray): שיטה זו משמשת לדחיפת מערך תווים בחזרה לזרם.
תַחבִּיר:
public void unread(char[] carray)
- פָּרָמֶטֶר: שיטה זו מצריכה מערך של תווים שיידחפו חזרה לזרם.
- סוג החזרה: השיטה הזו לא מחזירה כלום.
תוכנית Java להדגמת שיטות PushbackReader
דוּגמָה:
היכן מקש הכנס במקלדת המחשב הניידJava
// Demonstrating the working // of methods of PushbackReader class import java.io.*; public class Geeks { public static void main(String[] args) throws IOException { String s = 'GeeksForGeeks'; StringReader sr = new StringReader(s); PushbackReader pr = new PushbackReader(sr); // Check if the stream is ready System.out.println('Is the stream ready? ' + pr.ready()); // Use read() and skip() System.out.print('Using read() and skip(): '); for (int i = 0; i < 3; i++) { char c = (char) pr.read(); // Read 1 char System.out.print(c); pr.skip(1); // Skip next char } char c = (char) pr.read(); // read next char after 3 skip cycles System.out.print(c); // Now read() with array – only 1 char expected char[] arr = new char[1]; pr.read(arr); System.out.println('nUsing read() with an array: ' + new String(arr)); // Unread and read back pr.unread('F'); char nextChar = (char) pr.read(); System.out.println('After unread() the next character: ' + nextChar); // Close the reader pr.close(); } }
תְפוּקָה
Is the stream ready? true Using read() and skip(): Geso Using read() with an array: r After unread() the next character: Fצור חידון