Язык SQL

Классы, поддерживающие ввод и вывод полей


Эти методы используют интерфейсы Datainput и DataOutput, определяющие методы чтения и записи классов DatalnputStream и DataOutputstream соответственно. Подход с использованием интерфейса более общий, так как методы могут применяться к объектам любого класса, реализующего интерфейс, а не только Java-клзссов потоков данных. В частности, класс RandomAccessFile, используемый позднее, реализует оба интерфейса Datainput и DataOutput в одном классе. Он не наследует классы потоков данных, но содержит все операции ввода и вывода. Методы класса FieldOps можно использовать для объектов типа RandomAccessFile.

Как отмечалось ранее, операция считывания является более сложной по сравнению с записью. Сначала происходит считывание длины (строка 6 на 11.8), а затем создается массив из такого количества байт (строка 7). Этот массив используется для считывания потока (строка 8). Наконец, байтовый массив преобразуется к типу string и возвращается (строка 9).

Метод считывания класса Movie можно написать следующим образом.

public void read(Datainput in) throws; IOException {

//считывание объекта как полей с указанием длины и фиксированной

длины

name = FieldOps.readLength(in) ;

id = in.readlnt();

genre = FieldOps.readLength(in) ;

}

Можно заметить, что вызовы статических методов класса FieldOps отличаются от вызовов нестатических методов. В вызовах статических методов имя метода указывается с именем класса в виде префикса. Поток данных передается в качестве параметра в вызове статического метода readLength, но является объектом (префиксом) вызова нестатического метода readlnt.

Комментарии закрыты