DataInputStream используется в контексте DataOutputStream и может использоваться для чтения примитивных типов данных.

Ниже конструктор для создания InputStream:

InputStream in = DataInputStream(InputStream in);

Методы

Если используйте объект DataInputStream, то у Вас есть под рукой вспомогательные методы, которые можно использовать для чтения потока или для выполнения других операций над потоком.

Метод и описание
1public final int read(byte[] r, int off, int len)throws IOException
Чтение до len байтов данных из входного потока в массив байтов. Возвращает общее количество байтов, считанных в буфер, в противном случае -1, если это конец файла.
2public final int read(byte [] b)throws IOException
Считывает некоторые байты из входного потока и сохраняет в массив байтов. Возвращает общее количество байтов, считанных в буфер, в противном случае -1, если это конец файла.
3(1) public final Boolean readBooolean()throws IOException
(2) public final byte readByte()throws IOException
(3) public final short readShort()throws IOException
(4) public final Int readInt()throws IOException
Эти методы будут считывать байты из содержимого InputStream. Возвращает следующие два байта InputStream в качестве конкретного примитивного типа.
4public String readLine() throws IOException
Считывает следующую строку текста из входного потока. Метод считывает последовательно байты, преобразуя каждый байт отдельно в символ, пока он не встретит ограничитель строки или конец файла; прочитанные символы затем возвращаются как строка.

Пример

Ниже приведен пример демонстрации DataInputStream и DataOutputStream. В этом примере происходит запись и чтение с указанного файла test.txt.

import java.io.*;
public class TestByteStream {

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

      // Запись строки в файл в кодировке UTF-8
      DataOutputStream dataOutput = new DataOutputStream(new FileOutputStream("E:\\test.txt"));
      dataOutput.writeUTF("proglang.su");

      // Чтение данных из того же файла
      DataInputStream dataInput = new DataInputStream(new FileInputStream("E:\\test.txt"));

      while(dataInput.available() > 0) {
         String a = dataInput.readUTF();
         System.out.print(a);
      }
   }
}

Получим следующий результат:

proglang.su

Оглавление