כיתת Java PushbackReader

כיתת 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.

io.PushbackReader Class ב-Java


כעת נדון בפירוט על כל שיטה בזה אחר זה:

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  
צור חידון