logo

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.

teoria da árvore e do gráfico
Classe io.StringBufferInputStream em Java' title=


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:

converter uma string em um número inteiro
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