go的讀寫操作
阿新 • • 發佈:2019-01-09
讀寫操作: // hello project main.go /* 從檔案中讀取資料,然後進行排序,再把排序後的資料寫入到新檔案中 */ package main import ( "fmt" //使用fmt包中的Println()函式 "bufio" "io" "os" "strconv" "sort" ) func readValues(infile string) (values []int,err error){ file,err := os.Open(infile) if err != nil { fmt.Println("開啟檔案失敗!",infile) } defer file.Close() br := bufio.NewReader(file) values = make([]int,0) for{ line,isPrefix,err1 := br.ReadLine() if err1 != nil{ if err1 != io.EOF{ err = err1 } break } if isPrefix{ fmt.Println("A too long line, seems upexpected") return } str := string(line) value,err2 := strconv.Atoi(str) if err2 != nil{ err = err2 return } values = append(values,value) } return values,nil } func writeValues(values []int,outfile string) error{ file,err := os.Create(outfile) if err != nil{ fmt.Println("建立檔案失敗!",outfile) return err } defer file.Close() for _,value := range values{ str := strconv.Itoa(value) file.WriteString(str+"\n") } return nil } func main() { values,err := readValues("unsorted.dat") if err != nil{ fmt.Println(err) }else{ sort.Ints(values) writeValues(values,"sort.dat") } }