package FileUtil import ( "bufio" "fmt" "io" "os" ) // 判断所给路径文件/文件夹是否存在 func Exists(path string) bool { _, err := os.Stat(path) //os.Stat获取文件信息 if err != nil { if os.IsExist(err) { return true } return false } return true } /** 功能:按行读取文件 作者:黄海 时间:2020-07-08 */ func ReadLines(path string) ([]string, error) { file, err := os.Open(path) if err != nil { return nil, err } defer file.Close() var lines []string scanner := bufio.NewScanner(file) for scanner.Scan() { lines = append(lines, scanner.Text()) } return lines, scanner.Err() } /** 功能:按行写入文件 作者:黄海 时间:2020-07-08 */ func WriteLines(lines []string, path string) error { file, err := os.Create(path) if err != nil { return err } defer file.Close() w := bufio.NewWriter(file) for _, line := range lines { fmt.Fprintln(w, line) } return w.Flush() } func CopyFile (dstFilePath string,srcFilePath string)(written int64, err error){ srcFile,err := os.Open(srcFilePath) if err != nil{ fmt.Printf("打开源文件错误,错误信息=%v\n",err) } defer srcFile.Close() reader := bufio.NewReader(srcFile) dstFile,err := os.OpenFile(dstFilePath,os.O_WRONLY | os.O_CREATE,0777) if err != nil{ fmt.Printf("打开目标文件错误,错误信息=%v\n",err) return } writer := bufio.NewWriter(dstFile) defer dstFile.Close() return io.Copy(writer,reader) }