Если вы хотите разрезать файл пополам, то вы на полпути. После подсчета слов просто go вернитесь и прочитайте файл снова, записав половину в один файл наполовину в другой:
file.Seek(0,0)
scanner = bufio.NewScanner(file)
scanner.Split(bufio.ScanWords)
w:=0
for scanner.Scan() {
var outfile *os.File
if w<count/2 {
outfile=file1
} else {
outfile=file2
}
fmt.Fprintln(outfile,scanner.Text())
w++
}
Выше, file1
и file2
- два выходных файла .
Если вам не нужно разрезать файл пополам, а просто поместить половину слов в один файл, а другую половину в другой, вы можете сделать это за один проход, не считая. Просто переключите файл для записи, поскольку вы читаете с первого раза:
w:=0
for scanner.Scan() {
var outfile *os.File
if w%2==0 {
outfile=file1
} else {
outfile=file2
}
fmt.Fprintln(outfile,scanner.Text())
w++
}