Classe Java StringBufferInputStream
IL Classe StringBufferInoutStream in Java ci consente di creare un flusso di input da una stringa in modo da poter leggere i byte da essa. Funziona solo con gli 8 bit inferiori di ciascun carattere. Non può gestire l'intera gamma di valori dei caratteri. Invece di utilizzare questa classe, l'approccio migliore è utilizzare ByteArrayInputStream che non ha questa limitazione può leggere l'intera gamma di valori dei caratteri.
Nota: StringBufferInputStream è stato deprecato da Oracle.
Dichiarazione della classe StringBufferInputStream
La dichiarazione della classe StringBufferInputStream è la seguente:
la classe pubblica StringBufferInputStream estende InputStream
Costruttori in StringBufferInputStream
Questa classe è composta da un costruttore con l'aiuto del quale possiamo creare un oggetto di questa classe.
1. StringBufferInputStream(String str): T il suo costruttore viene utilizzato per creare un flusso di input di stringhe per leggere i dati da una stringa specificata.
Sintassi:
StringBufferInputStream(String str)
Esempio:
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 (); } } }
Produzione
Hello World!
Metodi Java StringBufferStream
L'immagine seguente mostra i metodi della classe PipedWriter.
Ora discuteremo di ciascun metodo uno per uno in dettaglio:
1. leggere(): Questo metodo viene utilizzato per leggere un byte di dati dal flusso di input
Sintassi:
public int read()
- Parametro: Questo metodo non accetta alcun parametro.
- Tipo di reso: Questo metodo restituisce il carattere letto come numero intero altrimenti restituisce -1 quando viene raggiunta la fine del flusso.
2. read(byte[] buffer int offset int maxlen): Questo metodo viene utilizzato per leggere un numero specifico di caratteri da un buffer.
Sintassi:
public int read(byte[] buffer int offset int maxlen)
- Parametro: Questo metodo richiede tre parametri elencati di seguito:
- respingente: È un array per memorizzare i caratteri
- offset: È la posizione di partenza da cui memorizzare il carattere
- maxlen: È il numero massimo di caratteri da leggere.
- Tipo di reso: Questo metodo restituisce il numero massimo di caratteri da leggere altrimenti restituisce -1 quando viene raggiunta la fine dello stream.
3. reimposta(): Questo metodo viene utilizzato per reimpostare il flusso e per questo motivo la lettura riparte dall'inizio.
Sintassi:
ripristino del vuoto pubblico()
- Parametro: Questo metodo non accetta alcun parametro.
- Tipo di reso: Questo metodo non restituisce nulla.
4. salta(lungo n): Questo metodo viene utilizzato per saltare e ignorare alcuni caratteri nel flusso di input.
Sintassi:
salto lungo pubblico (lungo n)
- Parametro: Questo metodo accetta un singolo parametro n che è il numero di byte da saltare
- Tipo di reso: Questo metodo restituisce il numero effettivo di byte saltati.
5. disponibile(): Questo metodo indica quanti caratteri rimangono da leggere nel flusso di input
Sintassi:
pubblico int disponibile()
- Parametro: questo metodo non accetta alcun parametro
- Tipo restituito: questo metodo restituisce il numero di caratteri che possono essere letti dal flusso di input.
Programma Java che illustra il funzionamento dei metodi della classe StringBufferInputStream
Ora nell'esempio seguente vedremo il funzionamento di tutti i metodi.
Esempio:
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 ); } } }
Produzione
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 quiz