Java StringBufferInputStream клас

Java StringBufferInputStream клас

The Клас StringBufferInoutStream в Java ни позволява да създадем входен поток от низ, така че да можем да четем байтове от него. Работи само с долните 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. нулиране(): Този метод се използва за нулиране на потока и поради това четенето започва отначало.

Синтаксис:

публично невалидно нулиране ()

  • Параметър: Този метод не приема никакъв параметър.
  • Тип връщане: Този метод не връща нищо.


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 
Създаване на тест