在Go中将字符串添加到现有文本文件

I have a text file that i'd like to add an a block of text to using Go. The text file looks like this (without the numbering)

  1. blah
  2. blah2
  3. ]
  4. blah3
  5. blah4

and i want it to look like this

  1. blah
  2. blah2
  3. MY INSERTED TEXT HERE
  4. ]
  5. blah3
  6. blah4

Assume I've already opened the file and created a string array of each line in the file called 'lines'.

 //find line with ] 
 for i, line := range lines {
     if(strings.ContainsRune(line, ']')) {
         //take the line before ']'... and write to it somehow 
         lines[i-1] (?)

     }
 }

How do I do this?

lines = append(lines[:i], 
           append([]string{"MY INSERTED TEXT HERE"}, lines[i:]...)...)

or

lines = append(lines, "")
copy(lines[i+1:], lines[i:])
lines[i] = "MY INSERTED TEXT HERE"

The second approach is more efficient. The two approaches are listed on the useful SliceTricks page.

If you want to do this with a slice, you can insert the string you want at the correct index.

// make the slice longer
lines = append(lines, "")
// shift each element back
copy(lines[i+1:], lines[i:])
// now you can insert the new line at i
lines[i] = x