| |
andomAccessFile idx;
// Файл данных
RandomAccessFile dat;
// Значение указателя на текущую запись
long idxFilePointer = 0;
// -------------------------------------------------------
// SimpleDBMS
// Конструктор. Создает и открывает файлы базы данных
// -------------------------------------------------------
public SimpleDBMS(String IndexFile, String DataFile)
{
try
{
// Создаем и открываем файл индексов
idx = new RandomAccessFile(IndexFile, "rw");
// Создаем и открываем файл данных
dat = new RandomAccessFile(DataFile, "rw");
}
catch(Exception ioe)
{
System.out.println(ioe.toString());
}
}
// -------------------------------------------------------
// close
// Метод close. Закрывает файлы базы данных
// -------------------------------------------------------
public void close()
{
try
{
// Закрываем файл индексов
idx.close();
// Закрываем файл данных
dat.close();
}
catch(Exception ioe)
{
System.out.println(ioe.toString());
}
}
// -------------------------------------------------------
// AddRecord
// Добавление записи в базу данных
// -------------------------------------------------------
public void AddRecord(String name, int account)
{
try
{
// Устанавливаем текущую позицию в файлах
// индекса и данных на конец файла
idx.seek(idx.length());
dat.seek(dat.length());
// Получаем смещение в файле данных места,
// куда будет добавлена новая запись
idxFilePointer = dat.getFilePointer();
// Сохраняем это смещение в файле индексов
idx.writeLong(idxFilePointer);
// Сохраняем в файле дайнных два поля новой записи
dat.writeBytes(name + "\r\n");
dat.writeInt(account);
}
catch(Exception ioe)
{
System.out.println(ioe.toString());
}
}
// -------------------------------------------------------
// GetRecordByNumber
// Извлечение записи по ее порядковому номеру
// -------------------------------------------------------
public String GetRecordByNumber(long nRec)
{
// Строка, в которой будет сохранена извлеченная запись
String sRecord = "";
try
{
// Значение поля account
Integer account;
// Значение поля name
String str = null;
// Вычисляем смещение в файле индексов по порядковому
// номеру записи
idx.seek(nRec * 8);
|
|