Java StringBufferInputStream -luokka

Java StringBufferInputStream -luokka

The StringBufferInoutStream-luokka Javassa antaa meille mahdollisuuden luoda merkkijonosta syötevirran, jotta voimme lukea siitä tavuja. Se toimii vain kunkin merkin alemman 8 bitin kanssa. Se ei voi käsitellä kaikkia merkkiarvoja. Tämän luokan käyttämisen sijaan paras tapa on käyttää ByteArrayInputStream jolla ei ole tätä rajoitusta, se voi lukea koko merkkiarvoalueen.

Huomautus: Oracle on poistanut StringBufferInputStreamin käytöstä.

StringBufferInputStream-luokan ilmoitus

StringBufferInputStream-luokan ilmoitus on alla:

public luokka StringBufferInputStream laajentaa InputStreamia

StringBufferInputStreamin rakentajat

Tämä luokka koostuu yhdestä konstruktorista, jonka avulla voimme luoda tämän luokan objektin.

1. StringBufferInputStream(String str): T hänen rakentajaansa käytetään luomaan merkkijonon syöttövirta datan lukemiseksi määritetystä merkkijonosta.

Syntaksi:

StringBufferInputStream(merkkijono str)

Esimerkki:

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

Lähtö
Hello World! 


Java StringBufferStream -menetelmät

Alla oleva kuva esittää PipedWriter-luokan menetelmät.

io.StringBufferInputStream-luokka Javassa


Nyt aiomme keskustella jokaisesta menetelmästä yksitellen yksityiskohtaisesti:

1. lue(): Tätä menetelmää käytetään lukemaan tavun dataa syöttövirrasta

Syntaksi:

julkinen int read()

  • Parametri: Tämä menetelmä ei ota mitään parametreja.
  • Palautustyyppi: Tämä menetelmä palauttaa luetun merkin kokonaislukuna, muuten palauttaa -1, kun virran loppu saavutetaan.


2. read(byte[] puskuri int offset int maxlen): Tätä menetelmää käytetään lukemaan tietty määrä merkkejä puskurista.

Syntaksi:

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

  • Parametri: Tämä menetelmä vaatii kolme parametria, jotka on lueteltu alla:
    • puskuri: Se on joukko merkkien tallentamiseen
    • offset: Se on lähtökohta, josta hahmo tallennetaan
    • maxlen: Se on luettavien merkkien enimmäismäärä.
  • Palautustyyppi: Tämä menetelmä palauttaa luettavien merkkien enimmäismäärän, muuten palauttaa -1, kun virran loppu saavutetaan.


3. reset(): Tätä menetelmää käytetään streamin nollaamiseen ja tämän vuoksi lukeminen alkaa alusta.

Syntaksi:

public void reset()

  • Parametri: Tämä menetelmä ei ota mitään parametreja.
  • Palautustyyppi: Tämä menetelmä ei palauta mitään.


4. ohita(pitkä n): Tätä menetelmää käytetään joidenkin syötevirran merkkien ohittamiseen ja huomiotta jättämiseen.

Syntaksi:

julkinen pitkä ohitus (pitkä n)

  • Parametri: Tämä menetelmä ottaa yhden parametrin n, joka on ohitettavien tavujen määrä
  • Palautustyyppi: Tämä menetelmä palauttaa ohitettujen tavujen todellisen määrän.


5. saatavilla(): Tämä menetelmä kertoo, kuinka monta merkkiä on jäljellä luettavana syöttövirrassa

Syntaksi:

julkinen int saatavilla()

  • Parametri: Tämä menetelmä ei ota mitään parametreja
  • Palautustyyppi: Tämä menetelmä palauttaa merkkien määrän, joka voidaan lukea syöttövirrasta.


Java-ohjelma, joka havainnollistaa StringBufferInputStream-luokkamenetelmien toimintaa

Nyt alla olevassa esimerkissä näemme kaikkien menetelmien toiminnan.

Esimerkki:

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

Lähtö
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 
Luo tietokilpailu