Пишу на Qt.
Программа должна непрерывно записывать (в среднем раз в секунду) в текстовый файл некоторые данные (конкретно — цифры). То есть файл должен быть все время открыт для записи.
Посмотрел документация — есть множество способов записи в текстовый файл: от чистого C до средств Qt.
Какой самый лучший, надежный и быстрый способ это делать?
Здравствуйте, The Minister, Вы писали:
TM>Пишу на Qt.
TM>Программа должна непрерывно записывать (в среднем раз в секунду) в текстовый файл некоторые данные (конкретно — цифры). То есть файл должен быть все время открыт для записи.
TM>Посмотрел документация — есть множество способов записи в текстовый файл: от чистого C до средств Qt.
TM>Какой самый лучший, надежный и быстрый способ это делать?
Не думайте о производительности. Мне сложно представить, что запись нескольких цифр раз в секунду может привести заметному замедлению, при любом способе вывода. (Разве только выводить голосом на динамик
.)
Используйте тот способ — который будет проще в реализации, и который соответствует будущему, возможному, применению этого фрагмента кода.
Если данный файл пишется из графической подсистемы Qt приложения, если предполагается локализация выводимого текста (перевод на разные языки), выводятся, в основном, QString, QArray — используйте потоки Qt (QFile, QTextStream).
Если данный файл пишется подсистемой DOM (и код возможно будет перенесен в не-Qt приложение) или выводятся контейнеры стандартной библиотеки (std::string,... ) — используйте стандартные потоки std::ofstrem.
Если требуется поддержка конситентности текстового файла (транзакции), или высокая скорость записи, или очень большой поток данных, или очень большое число маленьких транзакций в секунду, или совместная работа с файлом из нескольких программ... — понадобятся специальные средства или приемы. Но из вашей постановки задачи этого невидно.