Java StringBufferInputStream-klasse

Java StringBufferInputStream-klasse

De StringBufferInoutStream-klasse in Java stelt ons in staat een invoerstroom van een string te maken, zodat we er bytes uit kunnen lezen. Het werkt alleen met de onderste 8 bits van elk teken. Het kan niet het volledige bereik aan tekenwaarden verwerken. In plaats van deze klasse te gebruiken, is de beste aanpak om te gebruiken ByteArrayInputStream die deze beperking niet heeft, kan het volledige bereik van tekenwaarden lezen.

Opmerking: De StringBufferInputStream is verouderd door Oracle.

Declaratie van StringBufferInputStream-klasse

De declaratie van de klasse StringBufferInputStream vindt u hieronder:

public class StringBufferInputStream breidt InputStream uit

Constructors in StringBufferInputStream

Deze klasse bestaat uit één constructor met behulp waarvan we een object van deze klasse kunnen maken.

1. StringBufferInputStream(Stringstr): T zijn constructor wordt gebruikt om een ​​stringinvoerstroom te creëren om gegevens uit een gespecificeerde string te lezen.

Syntaxis:

StringBufferInputStream(Stringstr)

Voorbeeld:

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  ();      }      }   }   

Uitvoer
Hello World! 


Java StringBufferStream-methoden

De onderstaande afbeelding demonstreert de methoden van de PipedWriter-klasse.

io.StringBufferInputStream-klasse in Java


Nu gaan we elke methode één voor één in detail bespreken:

1. lees(): Deze methode wordt gebruikt om een ​​byte aan gegevens uit de invoerstroom te lezen

Syntaxis:

openbare int read()

  • Parameter: Deze methode gebruikt geen enkele parameter.
  • Retourtype: Deze methode retourneert het leesteken als een geheel getal, anders retourneert -1 wanneer het einde van de stream is bereikt.


2. lezen(byte[] buffer int offset int maxlen): Deze methode wordt gebruikt om een ​​bepaald aantal tekens uit een buffer te lezen.

Syntaxis:

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

  • Parameter: Deze methode heeft drie parameters nodig die hieronder worden vermeld:
    • buffer: Het is een array waarin tekens worden opgeslagen
    • compensatie: Het is de startpositie van waaruit karakter kan worden opgeslagen
    • maxlen: Het is het maximale aantal te lezen tekens.
  • Retourtype: Deze methode retourneert het maximale aantal te lezen tekens, anders retourneert -1 wanneer het einde van de stream is bereikt.


3. opnieuw instellen(): Deze methode wordt gebruikt om de stream te resetten en hierdoor begint het lezen vanaf het begin.

Syntaxis:

openbare ongeldige reset()

  • Parameter: Deze methode gebruikt geen enkele parameter.
  • Retourtype: Deze methode levert niets op.


4. overslaan(lange n): Deze methode wordt gebruikt om bepaalde tekens in de invoerstroom over te slaan en te negeren.

Syntaxis:

openbare lange skip(lange n)

  • Parameter: Deze methode gebruikt één enkele parameter n, het aantal bytes dat moet worden overgeslagen
  • Retourtype: Deze methode retourneert het werkelijke aantal overgeslagen bytes.


5. beschikbaar(): Deze methode vertelt hoeveel tekens er nog moeten worden gelezen in de invoerstroom

Syntaxis:

publieke int beschikbaar()

  • Parameter: Deze methode gebruikt geen enkele parameter
  • Return Type: Deze methode retourneert het aantal tekens dat uit de invoerstroom kan worden gelezen.


Java-programma dat de werking van StringBufferInputStream-klassemethoden illustreert

In het onderstaande voorbeeld zullen we de werking van alle methoden zien.

Voorbeeld:

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  );      }      }   }   

Uitvoer
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 
Quiz maken