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.