Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Classe Java InputStreamReader

Classe Java InputStreamReader


Neste tutorial, aprenderemos sobre o Java InputStreamReader e seus métodos com a ajuda de exemplos.

O InputStreamReader classe do java.io pacote pode ser usado para converter dados em bytes em dados em caracteres.

Ele estende a classe abstrata Reader .



O InputStreamReader classe trabalha com outros fluxos de entrada. Também é conhecido como uma ponte entre fluxos de bytes e fluxos de caracteres. Isso ocorre porque o InputStreamReader lê bytes do fluxo de entrada como caracteres.

Por exemplo, alguns caracteres requerem 2 bytes para serem armazenados no armazenamento. Para ler esses dados podemos usar o leitor de fluxo de entrada que lê os 2 bytes juntos e converte no caractere correspondente.


Criar um InputStreamReader


Para criar um InputStreamReader , devemos importar o java.io.InputStreamReader pacote primeiro. Uma vez que importamos o pacote, aqui é como podemos criar o leitor de fluxo de entrada.
// Creates an InputStream
FileInputStream file = new FileInputStream(String path);

// Creates an InputStreamReader
InputStreamReader input = new InputStreamReader(file);

No exemplo acima, criamos um InputStreamReader chamado entrada junto com o FileInputStream chamado arquivo .

Aqui, os dados no arquivo são armazenados usando alguma codificação de caracteres padrão.

No entanto, podemos especificar o tipo de codificação de caracteres (UTF8 ou UTF16 ) no arquivo também.
// Creates an InputStreamReader specifying the character encoding
InputStreamReader input = new InputStreamReader(file, Charset cs);

Aqui, usamos o Charset class para especificar a codificação de caracteres no arquivo.

Métodos de InputStreamReader


O InputStreamReader classe fornece implementações para diferentes métodos presentes no Reader classe.

Método read()




Por exemplo, suponha que temos um arquivo chamado input.txt com o seguinte conteúdo.
This is a line of text inside the file.

Vamos tentar ler este arquivo usando InputStreamReader .
import java.io.InputStreamReader;
import java.io.FileInputStream;

class Main {
  public static void main(String[] args) {

    // Creates an array of character
    char[] array = new char[100];

    try {
      // Creates a FileInputStream
      FileInputStream file = new FileInputStream("input.txt");

      // Creates an InputStreamReader
      InputStreamReader input = new InputStreamReader(file);

      // Reads characters from the file
      input.read(array);
      System.out.println("Data in the stream:");
      System.out.println(array);

      // Closes the reader
      input.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

Saída
Data in the stream:
This is a line of text inside the file.

No exemplo acima, criamos um leitor de fluxo de entrada usando o fluxo de entrada de arquivo. O leitor de fluxo de entrada está vinculado ao arquivo input.txt .
 FileInputStream file = new FileInputStream("input.txt");
 InputStreamReader input = new InputStreamReader(file);

Para ler os caracteres do arquivo, usamos o read() método.

Método getEncoding()


O getEncoding() pode ser usado para obter o tipo de codificação usado para armazenar dados no fluxo de entrada. Por exemplo,
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.io.FileInputStream;

class Main {
  public static void main(String[] args) {

    try {
      // Creates a FileInputStream
      FileInputStream file = new FileInputStream("input.txt");

      // Creates an InputStreamReader with default encoding
      InputStreamReader input1 = new InputStreamReader(file);

      // Creates an InputStreamReader specifying the encoding
      InputStreamReader input2 = new InputStreamReader(file, Charset.forName("UTF8"));

      // Returns the character encoding of the input stream
      System.out.println("Character encoding of input1: " + input1.getEncoding());
      System.out.println("Character encoding of input2: " + input2.getEncoding());

      // Closes the reader
      input1.close();
      input2.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

Saída
The character encoding of input1: Cp1252
The character encoding of input2: UTF8

No exemplo acima, criamos 2 leitores de fluxo de entrada chamados input1 e entrada2 .

Observação :Usamos o Charset.forName() método para especificar o tipo de codificação de caracteres. Para saber mais, visite Java Charset (documentação oficial do Java).

método close()


Para fechar o leitor de fluxo de entrada, podemos usar o close() método. Uma vez que o close() é chamado, não podemos usar o leitor para ler os dados.

Outros métodos de InputStreamReader

Método Descrição
ready() verifica se o stream está pronto para ser lido
mark() marcar a posição no fluxo até a qual os dados foram lidos
reset() retorna o controle ao ponto no fluxo onde a marca foi definida

Para saber mais, visite Java InputStreamReader (documentação oficial do Java).

Java

  1. Palavra-chave final Java
  2. Java instanceof Operator
  3. Classe estática aninhada em Java
  4. Classe anônima Java
  5. Classe Java Singleton
  6. Reflexão Java
  7. Classe Java ObjectOutputStream
  8. Classe de scanner Java
  9. Genéricos Java
  10. Classe de arquivo Java