一般情况下,ioutil库读取文件的效率最高,bufio库次之,直接使用文件的Read加上buffer的方法效率最低。但对于大文件,设置相同大小的buffer有时bufio反而会更慢。
1. ioutil读取文件
func LoadFile(filename string) []byte {
buf, err := ioutil.ReadFile(filename) //读取全部内容
if err != nil {
fmt.Println("loadFile readfile err:", err)
return nil
} else {
return buf
}
}
2. ioutil写入文件
func FileIsExisted(filename string) bool {
existed := true
if _, err := os.Stat(filename); os.IsNotExist(err) {
existed = false
}
return existed
}
func MakeDir(dir string) error {
if !FileIsExisted(dir) {
if err := os.MkdirAll(dir, 0777); err != nil { //os.ModePerm
fmt.Println("MakeDir failed:", err)
return err
}
}
return nil
}
func SaveFile(filename string, data []byte) bool {
var err error
if len(filename) > 0 && data