Лучший способ записи в файл
От: The Minister Земля  
Дата: 16.11.20 06:15
Оценка:
Пишу на Qt.

Программа должна непрерывно записывать (в среднем раз в секунду) в текстовый файл некоторые данные (конкретно — цифры). То есть файл должен быть все время открыт для записи.

Посмотрел документация — есть множество способов записи в текстовый файл: от чистого C до средств Qt.

Какой самый лучший, надежный и быстрый способ это делать?
Отредактировано 16.11.2020 6:17 The Minister . Предыдущая версия .
Re: Лучший способ записи в файл
От: Chorkov Россия  
Дата: 16.11.20 08:40
Оценка: +2
Здравствуйте, The Minister, Вы писали:

TM>Пишу на Qt.


TM>Программа должна непрерывно записывать (в среднем раз в секунду) в текстовый файл некоторые данные (конкретно — цифры). То есть файл должен быть все время открыт для записи.


TM>Посмотрел документация — есть множество способов записи в текстовый файл: от чистого C до средств Qt.


TM>Какой самый лучший, надежный и быстрый способ это делать?


Не думайте о производительности. Мне сложно представить, что запись нескольких цифр раз в секунду может привести заметному замедлению, при любом способе вывода. (Разве только выводить голосом на динамик .)

Используйте тот способ — который будет проще в реализации, и который соответствует будущему, возможному, применению этого фрагмента кода.
Если данный файл пишется из графической подсистемы Qt приложения, если предполагается локализация выводимого текста (перевод на разные языки), выводятся, в основном, QString, QArray — используйте потоки Qt (QFile, QTextStream).
Если данный файл пишется подсистемой DOM (и код возможно будет перенесен в не-Qt приложение) или выводятся контейнеры стандартной библиотеки (std::string,... ) — используйте стандартные потоки std::ofstrem.

Если требуется поддержка конситентности текстового файла (транзакции), или высокая скорость записи, или очень большой поток данных, или очень большое число маленьких транзакций в секунду, или совместная работа с файлом из нескольких программ... — понадобятся специальные средства или приемы. Но из вашей постановки задачи этого невидно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.