Classe Java StringBufferInputStream

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.

Classe io.StringBufferInputStream in Java


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 Geeks 
Crea quiz