读写操作:
// 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")
}
}
go的读写操作
最新推荐文章于 2023-01-11 09:44:49 发布