Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Метод close

Метод close закриває файли індексу й даних, викликаючи метод close із класу RandomAccessFile:

idx.close();

dat.close();

Метод AddRecord

Метод AddRecord додає новий запис у кінець файлу даних, а зсув цього запису - у кінець файлу індексу. Тому перед початком своєї роботи поточна позиція обох зазначених файлів установлюється на кінець файлу.

Для установки ми застосували метод seek із класу RandomAccessFile, передавши йому як параметр значення довжини файлу в байтах, певне за допомогою методу length з того ж класу:

idx.seek(idx.length());

dat.seek(dat.length());

Перед тим як додавати новий запис у файл даних, метод AddRecord визначає поточну позицію у файлі даних (у цьому випадку це позиція кінця файлу) і записує цю позицію у файл індексу:

idxFilePointer = dat.getFilePointer();

idx.writeLong(idxFilePointer);

Далі метод AddRecord виконує збереження полів запису у файлі даних. Для запису рядка викликається метод writeBytes, а для запису чисельного значення типу int - метод writeInt:

dat.writeBytes(name + "\r\n");

dat.writeInt(account);

Зверніть увагу, що до рядка ми додаємо символи повернення каретки й перекладу рядка. Це зроблено винятково для того щоб позначити кінець рядка текстового поля.

Метод GetRecordByNumber

Метод GetRecordByNumber дозволяє витягти довільний запис із файлу даних по її порядковому номеру.

Нагадаємо, що зсув всіх записів зберігаються у файлі індексів і мають однакову довжину 8 байт. Користуючись цим, метод GetRecordByNumber обчислює зсув у файлі індексу простим множенням порядкового номера запису на довжину змінної типу long, тобто на 8 байт, а потім виконує позиціонування:

idx.seek(nRec * 8);

Після цей метод GetRecordByNumber витягає з файлу індексів зсув потрібного запису у файлі даних, викликаючи для цей метод readLong, а потім виконує позиціонування у файлі даних:

idxFilePointer = idx.readLong();

dat.seek(idxFilePointer);

Поля записи читаються з файлу даних у два прийоми. Спочатку читається рядок текстового поля, а потім - чисельне значення, для чого викликаються, відповідно, методи readLine і readInt:

str = dat.readLine();

account = new Integer(dat.readInt());

Отримані значення полів поєднуються в текстовому рядку й записуються в змінну sRecord:

sRecord = new String("> " + account + ", " + str);

Уміст цієї змінної метод GetRecordByNumber повертає як витягнутий рядок запису бази даних.

 

СТВОРЕННЯ МЕРЕЖНИХ ДОДАТКІВ




Переглядів: 268

<== попередня сторінка | наступна сторінка ==>
Опис вихідного тексту додатка DirectFile | Аплет ShowChart

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.015 сек.