Руководство по Java Core. Файлы и работа с ними. DataInputStream.

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

Этот класс имеет такие методы:

  • public final int read (byte[] r, int off, int len) throws IOException
    Этот метод читает читает байтс с off до len из входного потока. Возвращает общее количество прочитанных байтов. Конец файла обозначается -1.
  • public final int read (byte [] b) throws IOException
    Этот метод читает байты из входящего потока и размещает их в байтовом массиве. Возвращает общее количество прочитанных байтов. Конец файла обознчается -1.
  • public String readLine () throws IOException
    Этот метод читает следующую строку их входного потока. Читает байты и поочерёдно преобразует их в символы до тех пор, пока не дойдёт либо до конца строки, либо до конца файла.
  • public final *SomeType* read*SomeType* () throws IOException
    В качестве SomeType могут выступать: Boolean, byte, short, int
    Эти методы читают байты из входного потока и возвращают следующие ц байта их входного потока как примитивный тип данных.

Рассмотрим, как это работает на примере простого приложения.

Пример:


import java.io.*;

public class DataInputStreamDemo {
    public static void main(String[] args) throws IOException{
        DataOutputStream dataOutputStream =
                new DataOutputStream(new FileOutputStream("/home/proselyte/Programming/Projects/Proselyte/JavaCore/resources/inputFile.txt"));
        dataOutputStream.writeUTF("This is test message.");

        DataInputStream dataInputStream =
                new DataInputStream(new FileInputStream("/home/proselyte/Programming/Projects/Proselyte/JavaCore/resources/inputFile.txt"));

        while (dataInputStream.available() != 0){
            String message = dataInputStream.readUTF();
            System.out.print(message);
        }

    }
}


В результате работы программы мы получим, примерно, следующий результат:


/*Some system messages*/
This is test message.

Мы рассмотрели основы работы с классом DataInputStream.