func createPipeline(filename string, fileSize ,chunkCount int) <-chan int{ chunkSize := fileSize / chunkCount sortResults := []<-chan int{} for i:= 0; i < chunkCount; i++{ if err != nil{ panic(err) } file.Seek(int64(i * chunkSize),0) source := pipeline.ReaderSource(bufio.NewReader(file),chunkSize) sortResults = append(sortResults,pipeline.InMenSort(source)) } return pipeline.MergeN(sortResults...) }
老师的是small.in文件也不再同一个目录吧,不知道为什么能打开?
不copy的话,还有一个方法: import
"path/filepath"
absPath, _ := filepath.Abs("../pipelineDemo/small.in")
然后打开那个全路径就行。
编译器似乎将产生的 small.in 文件放到了上层目录,所以在本层目录没有找到,你可以手动将产生的在上层的那个 small.in 文件 copy 到这个pipeline 文件夹中,然后就可以执行了。
如图所示