Java - DataInputStream

O DataInputStream é usado no contexto de DataOutputStream e pode ser usado para ler primitivos.

A seguir está o construtor para criar um InputStream -

InputStream in = new DataInputStream(InputStream in);

Depois de ter o objeto DataInputStream em mãos, há uma lista de métodos auxiliares, que podem ser usados ​​para ler o fluxo ou para fazer outras operações no fluxo.

Sr. Não. Método e Descrição
1

public final int read(byte[] r, int off, int len)throws IOException

Lê até len bytes de dados do fluxo de entrada em uma matriz de bytes. Retorna o número total de bytes lidos no buffer, caso contrário -1 se for o fim do arquivo.

2

Public final int read(byte [] b)throws IOException

Lê alguns bytes do fluxo de entrada e armazena na matriz de bytes. Retorna o número total de bytes lidos no buffer, caso contrário -1 se for o fim do arquivo.

3

(a) public final Boolean readBooolean()throws IOException

(b) public final byte readByte()throws IOException

(c) public final short readShort()throws IOException

(d) public final Int readInt()throws IOException

Esses métodos lerão os bytes do InputStream contido. Retorna os próximos dois bytes de InputStream como o tipo primitivo específico.

4

public String readLine() throws IOException

Lê a próxima linha de texto do fluxo de entrada. Ele lê bytes sucessivos, convertendo cada byte separadamente em um caractere, até encontrar um terminador de linha ou fim de arquivo; os caracteres lidos são então retornados como String.

Exemplo

A seguir está um exemplo para demonstrar DataInputStream e DataOutputStream. Este exemplo lê 5 linhas fornecidas em um arquivo test.txt e converte essas linhas em letras maiúsculas e, finalmente, as copia em outro arquivo test1.txt.

import java.io.*;
public class DataInput_Stream {

   public static void main(String args[])throws IOException {

      // writing string to a file encoded as modified UTF-8
      DataOutputStream dataOut = new DataOutputStream(new FileOutputStream("E:\\file.txt"));
      dataOut.writeUTF("hello");

      // Reading data from the same file
      DataInputStream dataIn = new DataInputStream(new FileInputStream("E:\\file.txt"));

      while(dataIn.available()>0) {
         String k = dataIn.readUTF();
         System.out.print(k+" ");
      }
   }
}

A seguir está o exemplo de execução do programa acima -

Resultado

hello