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.
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 GeeksLuo tietokilpailu