1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-04 21:02:27 +08:00

feat: add ClearFile, ReadFileToString, ReadFileByLine into file.go

This commit is contained in:
dudaodong
2021-12-09 20:19:13 +08:00
parent 188d52cd9d
commit 3021985df9
3 changed files with 87 additions and 6 deletions

View File

@@ -5,6 +5,7 @@
package fileutil
import (
"bufio"
"errors"
"io"
"io/ioutil"
@@ -75,6 +76,53 @@ func CopyFile(srcFilePath string, dstFilePath string) error {
}
}
//ClearFile write empty string to path file
func ClearFile(path string) error {
f, err := os.OpenFile(path, os.O_WRONLY|os.O_TRUNC, 0777)
if err != nil {
return err
}
defer f.Close()
_, err = f.WriteString("")
return err
}
//ReadFileToString return string of file content
func ReadFileToString(path string) (string, error) {
bytes, err := ioutil.ReadFile(path)
if err != nil {
return "", err
}
return string(bytes), nil
}
// ReadFileByLine
func ReadFileByLine(path string)([]string, error) {
f, err := os.Open(path)
if err != nil {
return nil, err
}
defer f.Close()
res := make([]string, 0)
buf := bufio.NewReader(f)
for {
line, _, err := buf.ReadLine()
l := string(line)
if err == io.EOF {
break
}
if err != nil {
continue
}
res = append(res, l)
}
return res, nil
}
// ListFileNames return all file names in the path
func ListFileNames(path string) ([]string, error) {
if !IsExist(path) {

View File

@@ -96,5 +96,43 @@ func TestListFileNames(t *testing.T) {
utils.LogFailedTestInfo(t, "ToChar", "./", expected, filesInCurrentPath)
t.FailNow()
}
}
func TestReadFileToString(t *testing.T) {
path := "./text.txt"
CreateFile(path)
f, _ := os.OpenFile(path, os.O_WRONLY|os.O_TRUNC, 0777)
f.WriteString("hello world")
res, _ := ReadFileToString(path)
if res != "hello world" {
utils.LogFailedTestInfo(t, "ReadFileToString", path, "hello world", res)
}
}
func TestClearFile(t *testing.T) {
path := "./text.txt"
CreateFile(path)
f, _ := os.OpenFile(path, os.O_WRONLY|os.O_TRUNC, 0777)
f.WriteString("hello world")
CreateFile(path)
res, _ := ReadFileToString(path)
if res != "" {
utils.LogFailedTestInfo(t, "CreateFile", path, "", res)
}
}
func TestReadFileByLine(t *testing.T) {
path := "./text.txt"
CreateFile(path)
f, _ := os.OpenFile(path, os.O_WRONLY|os.O_TRUNC, 0777)
f.WriteString("hello\nworld")
expected := []string{"hello", "world"}
res, _ := ReadFileByLine(path)
if !reflect.DeepEqual(res, expected) {
utils.LogFailedTestInfo(t, "ReadFileByLine", path, expected, res)
}
}

View File

@@ -378,11 +378,6 @@ func TestUpdateByIndex(t *testing.T) {
r3 := []string{"a", "b", "1"}
updateByIndex(t, t1, 2, "1", r3)
//failed
//t1 = []string{"a","b","c"}
//r4 := []string{"a", "b", "1"}
//updateByIndex(t, t1, 3, "1", r4)
}
func updateByIndex(t *testing.T, test interface{}, index int, value, expected interface{}) {