You have identified a good way to do this. Read with ioutil.ReadFile, convert to string, split with strings.Split "\n", make []int of the desired (or at least sufficient) size, then assign the values in a loop. I would use strconv.Atoi (and perhaps strings.TrimSpace first). It might sound like a lot of code, but you are specifying exactly what the code should do, and the benefits are knowing that your program is efficient, and having complete control over your handling of invalid or unexpected data.
To answer questions about append though, append is an efficient way to build up a list, as long as you are appending to the end. Append uses a scheme of over-allocating by increasing amounts so that it doesn't have to allocate every time. Alternatively, as you noted, you can allocate it with sufficient capacity to begin with.
You can use append to build up a list from the front though.
list = append(<list type>{newElement}, list...)
will do the job, but now you really are allocating for every element added, and generating lots of garbage in the process. Sometimes it's convenient, but usually you would do better to find a different algorithm. If nothing else, building the list from the end, then reversing it in place would be more efficient in most cases.