feat(Go-Tool):新建文件读写、文件操作、文件夹操作工具类

This commit is contained in:
huangzj
2020-04-27 11:26:05 +08:00
parent 5ec9f3d631
commit 3ce9ea57b8
4 changed files with 415 additions and 0 deletions
+68
View File
@@ -0,0 +1,68 @@
/*
* @Author : huangzj
* @Time : 2020/4/26 14:55
* @Description 文件读取工具
*/
package util
import (
err2 "Go-Tool/err"
"bufio"
"fmt"
"io"
"io/ioutil"
"os"
)
/*
* @param 文件地址
* @return string 文件内容
* @return FileError 报错信息
* @description 一次直接读取文件中的内容不进行中间处理
*/
func ReadInOnce(filePath string) (string, *err2.FileError) {
err, is, _ := IsFileExist(filePath)
if err != nil {
return "", err2.ENewFileError(err)
}
if !is {
return "", err2.NewFileError("非文件")
}
fd, iErr := ioutil.ReadFile(filePath)
if iErr != nil {
return "", err2.ENewFileError(iErr)
}
return string(fd), nil
}
/*
* @param filePath 文件地址
* @return string 读取的文件内容
* @return FileError 读取错误,如果没有错误返回nil
* @description 通过for循环去读取文件,这边提供一种读取方式,通过这种方式来处理对应读取的操作
*/
func ReadByCircle(filePath string) (string, *err2.FileError) {
var fs string
file, err := os.Open(filePath)
if err != nil {
return "", err2.ENewFileError(err)
}
defer file.Close()
inputReader := bufio.NewReader(file)
for {
inputString, readerError := inputReader.ReadString('\n')
if readerError == io.EOF {
if inputString != "" {
fs = fmt.Sprint(fs, inputString)
}
break
}
fs = fmt.Sprint(fs, inputString)
}
return fs, nil
}