Classe Java StringBufferInputStream
El Classe StringBufferInoutStream a Java ens permet crear un flux d'entrada a partir d'una cadena per poder llegir-ne bytes. Només funciona amb els 8 bits inferiors de cada caràcter. No pot gestionar la gamma completa de valors de caràcters. En lloc d'utilitzar aquesta classe, el millor enfocament és utilitzar ByteArrayInputStream que no té aquesta limitació, pot llegir la gamma completa de valors de caràcters.
Nota: El StringBufferInputStream ha estat obsolet per Oracle.
Declaració de la classe StringBufferInputStream
La declaració de la classe StringBufferInputStream és la següent:
La classe pública StringBufferInputStream amplia InputStream
Constructors a StringBufferInputStream
Aquesta classe consta d'un constructor amb l'ajuda del qual podem crear un objecte d'aquesta classe.
1. StringBufferInputStream(String str): T el seu constructor s'utilitza per crear un flux d'entrada de cadena per llegir dades d'una cadena especificada.
Sintaxi:
StringBufferInputStream(String str)
Exemple:
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 (); } } }
Sortida
Hello World!
Mètodes Java StringBufferStream
La imatge següent mostra els mètodes de la classe PipedWriter.
Ara parlarem de cada mètode un per un en detall:
1. llegir(): Aquest mètode s'utilitza per llegir un byte de dades del flux d'entrada
Sintaxi:
public int read()
- Paràmetre: Aquest mètode no pren cap paràmetre.
- Tipus de retorn: Aquest mètode retorna el caràcter llegit com un nombre enter, en cas contrari retorna -1 quan s'arriba al final del flux.
2. read(byte[] buffer int offset int maxlen): Aquest mètode s'utilitza per llegir un nombre específic de caràcters d'una memòria intermèdia.
Sintaxi:
public int read(byte[] buffer int offset int maxlen)
- Paràmetre: Aquest mètode pren tres paràmetres que s'enumeren a continuació:
- buffer: És una matriu per emmagatzemar caràcters
- compensació: És la posició inicial des d'on emmagatzemar el personatge
- maxlen: És el nombre màxim de caràcters per llegir.
- Tipus de retorn: Aquest mètode retorna el nombre màxim de caràcters per llegir, en cas contrari retorna -1 quan s'arriba al final del flux.
3. restablir(): Aquest mètode s'utilitza per restablir el flux i per això la lectura comença des del principi.
Sintaxi:
restabliment public void ()
- Paràmetre: Aquest mètode no pren cap paràmetre.
- Tipus de retorn: Aquest mètode no retorna res.
4. saltar (n llarga): Aquest mètode s'utilitza per saltar i ignorar alguns caràcters del flux d'entrada.
Sintaxi:
salt llarg públic (n llarg)
- Paràmetre: Aquest mètode pren un únic paràmetre n que és el nombre de bytes a saltar
- Tipus de retorn: Aquest mètode retorna el nombre real de bytes saltats.
5. disponible(): Aquest mètode indica quants caràcters queden per llegir al flux d'entrada
Sintaxi:
public int disponible ()
- Paràmetre: aquest mètode no pren cap paràmetre
- Tipus de retorn: aquest mètode retorna el nombre de caràcters que es poden llegir des del flux d'entrada.
Programa Java que il·lustra el funcionament dels mètodes de classe StringBufferInputStream
Ara a l'exemple següent veurem el funcionament de tots els mètodes.
Exemple:
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 ); } } }
Sortida
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 GeeksCrea un qüestionari