Classe Java StringBufferInputStream

Classe Java StringBufferInputStream

O Classe StringBufferInoutStream em Java nos permite criar um fluxo de entrada a partir de uma string para que possamos ler bytes dela. Funciona apenas com os 8 bits inferiores de cada caractere. Não consegue lidar com toda a gama de valores de caracteres. Em vez de usar esta classe, a melhor abordagem é usar ByteArrayInputStream que não possui essa limitação, ele pode ler toda a gama de valores de caracteres.

Observação: O StringBufferInputStream foi descontinuado pela Oracle.

Declaração da classe StringBufferInputStream

A declaração da classe StringBufferInputStream está abaixo:

classe pública StringBufferInputStream estende InputStream

Esta classe consiste em um construtor com o qual podemos criar um objeto desta classe.

1. StringBufferInputStream (String str): T seu construtor é usado para criar um fluxo de entrada de string para ler dados de uma string especificada.

Sintaxe:

StringBufferInputStream(Stringstr)

Exemplo:

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  ();      }      }   }   

Saída
Hello World! 


Métodos Java StringBufferStream

A imagem abaixo demonstra os métodos da classe PipedWriter.

Classe io.StringBufferInputStream em Java


Agora vamos discutir cada método, um por um, em detalhes:

1. ler(): Este método é usado para ler um byte de dados do fluxo de entrada

Sintaxe:

leitura int pública()

  • Parâmetro: Este método não aceita nenhum parâmetro.
  • Tipo de retorno: Este método retorna o caractere lido como um número inteiro, caso contrário, retorna -1 quando o final do fluxo é atingido.


2. leitura (byte[] buffer int offset int maxlen): Este método é usado para ler um número específico de caracteres de um buffer.

Sintaxe:

public int read(byte[] buffer int offset int maxlen)

  • Parâmetro: Este método usa três parâmetros listados abaixo:
    • buffer: É um array para armazenar caracteres
    • desvio: É a posição inicial de onde armazenar caracteres
    • maxlen: É o número máximo de caracteres a serem lidos.
  • Tipo de retorno: Este método retorna o número máximo de caracteres a serem lidos, caso contrário retorna -1 quando o final do fluxo é atingido.


3. redefinir (): Este método é utilizado para zerar o fluxo e por isso a leitura começa desde o início.

Sintaxe:

redefinição de vazio público ()

  • Parâmetro: Este método não aceita nenhum parâmetro.
  • Tipo de retorno:


4. pular (n longo): Este método é usado para pular e ignorar alguns caracteres no fluxo de entrada.

Sintaxe:

salto longo público (n longo)

  • Parâmetro: Este método usa um único parâmetro n que é o número de bytes a serem ignorados
  • Tipo de retorno: Este método retorna o número real de bytes ignorados.


5. disponível(): Este método informa quantos caracteres restam para ler no fluxo de entrada

Sintaxe:

público int disponível()

  • Parâmetro: Este método não aceita nenhum parâmetro
  • Tipo de retorno: este método retorna o número de caracteres que podem ser lidos no fluxo de entrada.


Programa Java que ilustra o funcionamento dos métodos da classe StringBufferInputStream

Agora no exemplo abaixo veremos o funcionamento de todos os métodos.

Exemplo:

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  );      }      }   }   

Saída
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 
Criar questionário