כיתת Java PushbackReader
ה שיעור 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!
שיטות 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() .
תַחבִּיר:
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צור חידון