Java StringBufferInputStream Class

Java StringBufferInputStream Class

De StringBufferInoutStream-klassen i Java lar oss lage en inngangsstrøm fra en streng slik at vi kan lese byte fra den. Det fungerer bare med de nederste 8 bitene av hvert tegn. Det kan ikke håndtere hele spekteret av tegnverdier. I stedet for å bruke denne klassen er den beste tilnærmingen å bruke ByteArrayInputStream som ikke har denne begrensningen, kan den lese hele spekteret av tegnverdier.

Note: StringBufferInputStream har blitt avviklet av Oracle.

Erklæring av StringBufferInputStream Class

Erklæringen for StringBufferInputStream-klassen er nedenfor:

public class StringBufferInputStream utvider InputStream

Konstruktører i StringBufferInputStream

Denne klassen består av én konstruktør ved hjelp av hvilken vi kan lage et objekt av denne klassen.

1. StringBufferInputStream(String str): T konstruktøren hans brukes til å lage en strenginndatastrøm for å lese data fra en spesifisert streng.

Syntaks:

StringBufferInputStream(String str)

Eksempel:

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

Produksjon
Hello World! 


Java StringBufferStream-metoder

Bildet nedenfor viser metodene til PipedWriter-klassen.

io.StringBufferInputStream-klassen i Java


Nå skal vi diskutere hver metode en etter en i detalj:

1. les(): Denne metoden brukes til å lese en byte med data fra inngangsstrømmen

Syntaks:

public int read()

  • Parameter: Denne metoden tar ikke noen parameter.
  • Returtype: Denne metoden returnerer lesetegnet som et heltall ellers returnerer -1 når slutten av strømmen er nådd.


2. les(byte[] buffer int offset int maxlen): Denne metoden brukes til å lese et spesifikt antall tegn fra en buffer.

Syntaks:

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

  • Parameter: Denne metoden tar tre parametere som er oppført nedenfor:
    • buffer: Det er en rekke for å lagre karakterer
    • offset: Det er startposisjonen fra hvor man skal lagre karakter
    • maxlen: Det er maksimalt antall tegn å lese.
  • Returtype: Denne metoden returnerer maksimalt antall tegn å lese, ellers returnerer -1 når slutten av strømmen er nådd.


3. tilbakestill(): Denne metoden brukes til å tilbakestille strømmen og på grunn av dette starter lesingen fra begynnelsen.

Syntaks:

offentlig void reset()

  • Parameter: Denne metoden tar ikke noen parameter.
  • Returtype: Denne metoden returnerer ikke noe.


4. hopp over (lang n): Denne metoden brukes til å hoppe over og ignorere noen tegn i inndatastrømmen.

Syntaks:

offentlig langt hopp (lang n)

  • Parameter: Denne metoden tar en enkelt parameter n som er antall byte som skal hoppes over
  • Returtype: Denne metoden returnerer det faktiske antallet byte hoppet over.


5. tilgjengelig(): Denne metoden forteller hvor mange tegn som er igjen å lese i inndatastrømmen

Syntaks:

offentlig int tilgjengelig()

  • Parameter: Denne metoden tar ikke noen parameter
  • Returtype: Denne metoden returnerer antall tegn som kan leses fra inndatastrømmen.


Java-program som illustrerer hvordan StringBufferInputStream-klassemetoder fungerer

Nå i eksemplet nedenfor vil vi se hvordan alle metodene fungerer.

Eksempel:

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

Produksjon
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 
Lag quiz