Classe Java StringBufferInputStream

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.

Classe io.StringBufferInputStream a Java


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 Geeks 
Crea un qüestionari

Articles Més Populars

Categoria

Articles D'Interès