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.
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 GeeksCriar questionário