Очистка файла перед записью
Задался вопросом в процессе разработки, каким же образом перед записью в файл его можно очистить?
К примеру в текстовом файле у меня содержится на первой строке словосочетание "Привет, мир!". В зависимости от ситуации, которая произойдет в потоке выполнения программы я бы хотел перезаписать значение, например на "Прощай, мир!". Но если просто повторно произвести операцию file.WriteString("Прощай, мир!"), то произойдет конкатенация.
В таком случае нужно, чтобы перед записью файл очистился, курсор переставился на нулевую позицию, что ли.
Ответы (1 шт):
Если хотите очистить при открытии, то просто передайте
в OpenFile
флаг
O_TRUNC. При работе
с уже открытым же файлом, вам нужно вызвать метод
Seek
для «перемотки» в начало и метод
Truncate
для уменьшения размера файла:
_, _ = f.WriteString("Hello, world!\n")
check(err)
_, err = f.Seek(0, io.SeekStart)
check(err)
err = f.Truncate(0)
check(err)
_, err = f.WriteString("Goodbye, world!\n")
check(err)