Java StringBufferInputStream-klasse
De StringBufferInoutStream-klasse in Java stelt ons in staat een invoerstroom van een string te maken, zodat we er bytes uit kunnen lezen. Het werkt alleen met de onderste 8 bits van elk teken. Het kan niet het volledige bereik aan tekenwaarden verwerken. In plaats van deze klasse te gebruiken, is de beste aanpak om te gebruiken ByteArrayInputStream die deze beperking niet heeft, kan het volledige bereik van tekenwaarden lezen.
Opmerking: De StringBufferInputStream is verouderd door Oracle.
Declaratie van StringBufferInputStream-klasse
De declaratie van de klasse StringBufferInputStream vindt u hieronder:
public class StringBufferInputStream breidt InputStream uit
Constructors in StringBufferInputStream
Deze klasse bestaat uit één constructor met behulp waarvan we een object van deze klasse kunnen maken.
1. StringBufferInputStream(Stringstr): T zijn constructor wordt gebruikt om een stringinvoerstroom te creëren om gegevens uit een gespecificeerde string te lezen.
Syntaxis:
StringBufferInputStream(Stringstr)
Voorbeeld:
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 (); } } }
Uitvoer
Hello World!
Java StringBufferStream-methoden
De onderstaande afbeelding demonstreert de methoden van de PipedWriter-klasse.
Nu gaan we elke methode één voor één in detail bespreken:
1. lees(): Deze methode wordt gebruikt om een byte aan gegevens uit de invoerstroom te lezen
Syntaxis:
openbare int read()
- Parameter: Deze methode gebruikt geen enkele parameter.
- Retourtype: Deze methode retourneert het leesteken als een geheel getal, anders retourneert -1 wanneer het einde van de stream is bereikt.
2. lezen(byte[] buffer int offset int maxlen): Deze methode wordt gebruikt om een bepaald aantal tekens uit een buffer te lezen.
Syntaxis:
public int read(byte[] buffer int offset int maxlen)
- Parameter: Deze methode heeft drie parameters nodig die hieronder worden vermeld:
- buffer: Het is een array waarin tekens worden opgeslagen
- compensatie: Het is de startpositie van waaruit karakter kan worden opgeslagen
- maxlen: Het is het maximale aantal te lezen tekens.
- Retourtype: Deze methode retourneert het maximale aantal te lezen tekens, anders retourneert -1 wanneer het einde van de stream is bereikt.
3. opnieuw instellen(): Deze methode wordt gebruikt om de stream te resetten en hierdoor begint het lezen vanaf het begin.
Syntaxis:
openbare ongeldige reset()
- Parameter: Deze methode gebruikt geen enkele parameter.
- Retourtype: Deze methode levert niets op.
4. overslaan(lange n): Deze methode wordt gebruikt om bepaalde tekens in de invoerstroom over te slaan en te negeren.
Syntaxis:
openbare lange skip(lange n)
- Parameter: Deze methode gebruikt één enkele parameter n, het aantal bytes dat moet worden overgeslagen
- Retourtype: Deze methode retourneert het werkelijke aantal overgeslagen bytes.
5. beschikbaar(): Deze methode vertelt hoeveel tekens er nog moeten worden gelezen in de invoerstroom
Syntaxis:
publieke int beschikbaar()
- Parameter: Deze methode gebruikt geen enkele parameter
- Return Type: Deze methode retourneert het aantal tekens dat uit de invoerstroom kan worden gelezen.
Java-programma dat de werking van StringBufferInputStream-klassemethoden illustreert
In het onderstaande voorbeeld zullen we de werking van alle methoden zien.
Voorbeeld:
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 ); } } }
Uitvoer
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 GeeksQuiz maken