Я пытаюсь написать функцию go, которая будет читать строки в текстовом файле, сортировать их (по алфавиту) и перезаписывать их обратно в файл. Прямо сейчас я могу по существу эмулировать cat
, но я не могу манипулировать содержимым элементов в read_line.
func sort() {
ff, _ := os.OpenFile(file, os.O_RDWR, 0666)
f := bufio.NewReader(ff)
for {
read_line, _ := f.ReadString('\n')
fmt.Print(read_line)
if read_line == "" {
break
}
}
ff.Close()
}
когда я использую ReadString, как я могу сохранить каждую строку в срезе (или есть лучший способ сохранить их, чтобы я мог ими манипулировать)? Затем я бы использовал пакет сортировки примерно так:
sorted := sort.Strings(lines)
затем, чтобы записать в файл, я использую что-то похожее на следующее, хотя я не включил его, потому что я еще не получил «сортировку» для работы:
io.WriteString(ff, (lines + "\n"))
Заранее спасибо за любые предложения!