Клас Java StringBufferInputStream

Клас Java StringBufferInputStream

The Клас StringBufferInoutStream у Java allows us to create an input stream from a string so that we can read bytes from it. Він працює лише з молодшими 8 бітами кожного символу. Він не може обробляти повний діапазон значень символів. Замість використання цього класу найкращим підходом є використання ByteArrayInputStream який не має цього обмеження, він може читати повний діапазон значень символів.

Примітка: StringBufferInputStream визнано застарілим Oracle.

Оголошення класу StringBufferInputStream

Оголошення класу StringBufferInputStream наведено нижче:

публічний клас StringBufferInputStream розширює InputStream

Конструктори в StringBufferInputStream

Цей клас складається з одного конструктора, за допомогою якого ми можемо створити об'єкт цього класу.

1. StringBufferInputStream(String str): T його конструктор використовується для створення вхідного потоку рядка для читання даних із зазначеного рядка.

Синтаксис:

StringBufferInputStream(String str)

приклад:

Java
   // Demonstrating the working    // of StringBufferInputStream(String str)   import     java.io.*  ;   public     class   Geeks  {      public     static     void     main  (  String  []     args  )     {          // Creating a String to be used with StringBufferInputStream      String     str     =     'Hello World!'  ;      // Creating StringBufferInputStream from the String      StringBufferInputStream     is     =     new     StringBufferInputStream  (  str  );      // Reading bytes from the StringBufferInputStream      int     data  ;      try     {      while     ((  data     =     is  .  read  ())     !=     -  1  )     {      // Print each byte as a character      System  .  out  .  print  ((  char  )     data  );      }      is  .  close  ();      }     catch     (  IOException     e  )     {      e  .  printStackTrace  ();      }      }   }   

Вихід
Hello World! 


Методи Java StringBufferStream

На зображенні нижче показано методи класу PipedWriter.

Клас io.StringBufferInputStream у Java


Тепер ми докладніше обговоримо кожен метод окремо:

1. читати(): Цей метод використовується для читання байта даних із вхідного потоку

Синтаксис:

public int read()

  • Параметр: Цей метод не приймає жодних параметрів.
  • Тип повернення: Цей метод повертає прочитаний символ як ціле число, інакше повертає -1, коли досягнуто кінця потоку.


2. read(byte[] buffer int offset int maxlen): Цей метод використовується для читання певної кількості символів із буфера.

Синтаксис:

public int read(byte[] buffer int offset int maxlen)

  • Параметр: Цей метод приймає три параметри, які перераховані нижче:
    • буфер: Це масив для зберігання символів
    • зсув:
    • Макслен: Це максимальна кількість символів для читання.
  • Тип повернення: Цей метод повертає максимальну кількість символів для читання, інакше повертає -1, коли досягнуто кінця потоку.


3. reset(): Цей метод використовується для скидання потоку, і тому читання починається з початку.

Синтаксис:

public void reset()

  • Параметр: Цей метод не приймає жодних параметрів.
  • Тип повернення: Цей метод нічого не повертає.


4. пропуск (довгий n): Цей метод використовується для пропуску та ігнорування деяких символів у вхідному потоці.

Синтаксис:

публічний довгий пропуск (довгий n)

  • Параметр: Цей метод приймає один параметр n, який є кількістю байтів, які потрібно пропустити
  • Тип повернення: Цей метод повертає фактичну кількість пропущених байтів.


5. доступний(): Цей метод повідомляє, скільки символів залишилося для читання у вхідному потоці

Синтаксис:

public int available()

  • Параметр: цей метод не приймає жодних параметрів
  • Тип повернення: цей метод повертає кількість символів, які можна прочитати з вхідного потоку.


Програма Java, що ілюструє роботу методів класу StringBufferInputStream

Тепер у прикладі нижче ми побачимо роботу всіх методів.

приклад:

Java
   // Demonstrating the working of    // read() read(byte[] buffer int offset int maxlen)   // reset() skip(long n) available()   import     java.io.*  ;   public     class   Geeks     {      public     static     void     main  (  String  []     args  )     throws     IOException     {          String     s1     =     'Hello Geeks'  ;      String     s2     =     'GeeksForGeeks'  ;      StringBufferInputStream     b1     =     new     StringBufferInputStream  (  s1  );      StringBufferInputStream     b2     =     new     StringBufferInputStream  (  s2  );      // available()      System  .  out  .  println  (  'Use of available() 1: '     +     b1  .  available  ());      int     a  ;      System  .  out  .  println  (  'Use of read() method:'  );      while     ((  a     =     b1  .  read  ())     !=     -  1  )     {      char     c     =     (  char  )     a  ;      System  .  out  .  println  (  c  );      // skip()      b1  .  skip  (  1  );      }      System  .  out  .  println  (  'Use of available() 2: '     +     b2  .  available  ());      byte  []     byteBuffer     =     new     byte  [  15  ]  ;      b2  .  read  (  byteBuffer       1       2  );      int     b  ;      System  .  out  .  print  (  'Remaining characters after partial read: '  );      while     ((  b     =     b2  .  read  ())     !=     -  1  )     {      System  .  out  .  print  ((  char  )     b  );      }      // reset()      b1  .  reset  ();      System  .  out  .  print  (  'nAfter reset(): '  );      int     i  ;      while     ((  i     =     b1  .  read  ())     !=     -  1  )     {      System  .  out  .  print  ((  char  )     i  );      }      }   }   

Вихід
Use of available() 1: 11 Use of read() method: H l o G e s Use of available() 2: 13 Remaining characters after partial read: eksForGeeks After reset(): Hello Geeks 
Створіть вікторину