Это старая версия документа!
IODevice- это абстрактный класс, обобщающий устройства ввода/вывода.
Реализация конкретного устройства происходит в унаследованных классах, есть 4 предопределенных:
Для работы с устройством, его необходимо открыть в одном из след режимов:
Метод openMode() позволяет узнать в каком режиме открыто устройство.
Для чтения записи методы read() и write(), метод readAll() читает все и возвращает QByteArray. Так же есть readLine() и getChar().
Получить текущее положение курсора pos(), сменить его- seek(). Применимо к QFile, QBuffer и QTemoraryFile, не применимо при сетевом доступе.
Есть ряд методов, для получения информации об устройстве, например isReadable() и isWriteable().
Открыть файл можно передав путь в конструкторе, либо позже, методом setName(). Проверить открытие файла isOpen(), с закрытием файла (close()) сброс буфера происходит автоматически, можно вызвать его вручную, методом flush(). Для проверки существования есть статический метод QFile::exist().
Для удаления файла есть статический метод remove()
Для экономии ОЗУ можно использовать сжатие, методами qCompress() и qUncompress(), они работают с классом QByteArray.
void TestFiles() { QFile vFile1("file1.dat"); QFile vFile2("file2.dat"); if(vFile2.exists()) qDebug() << "File is exist"; if(!vFile1.open(QIODevice::ReadOnly)) qDebug() << "Open Error"; QByteArray a= vFile1.readAll(); vFile2.write(a); vFile1.close(); vFile2.close(); }