FS без повторений?
Как записать текст в файл без повторений?
fs.appendFile('d:\\a\\logs.txt', `[${today}] [${displaytime}] `+message.toString()+"\n", err => {
if (err) {
console.error(err)
return
}
})
Этот код добавляет в файл текст с повторениями, а мне надо без повторений. Как это сделать?
Ответы (1 шт):
Мне в голову приходит два способа.
С дополнительными затратами на память. Создайте структуру
Setи заносите в неё все сообщения, которые выводите в файл. Перед выводом проверяйте наличие в ней идентичных сообщений и выводите, только если их там нет.С дополнительными затратами на чтение файла и парсинг. Перед выводом читайте содержимое файла, делите его на строки и проверяйте на наличие идентичных сообщений.
Первый способ может скушать много дополнительной памяти, если у вас большие объёмы данных. Второй способ будет отбирать время на чтение файла и разбор — а если файл большой, вместо постоянно занятого куска памяти вы будете занимать такой же кусок время от времени.
Возможно, кто-то подскажет более удачные решения.