mirror of
https://github.com/duke-git/lancet.git
synced 2026-02-13 09:12:28 +08:00
feat: add ClearFile, ReadFileToString, ReadFileByLine into file.go
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
package fileutil
|
package fileutil
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bufio"
|
||||||
"errors"
|
"errors"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"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
|
// ListFileNames return all file names in the path
|
||||||
func ListFileNames(path string) ([]string, error) {
|
func ListFileNames(path string) ([]string, error) {
|
||||||
if !IsExist(path) {
|
if !IsExist(path) {
|
||||||
|
|||||||
@@ -96,5 +96,43 @@ func TestListFileNames(t *testing.T) {
|
|||||||
utils.LogFailedTestInfo(t, "ToChar", "./", expected, filesInCurrentPath)
|
utils.LogFailedTestInfo(t, "ToChar", "./", expected, filesInCurrentPath)
|
||||||
t.FailNow()
|
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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -378,11 +378,6 @@ func TestUpdateByIndex(t *testing.T) {
|
|||||||
r3 := []string{"a", "b", "1"}
|
r3 := []string{"a", "b", "1"}
|
||||||
updateByIndex(t, t1, 2, "1", r3)
|
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{}) {
|
func updateByIndex(t *testing.T, test interface{}, index int, value, expected interface{}) {
|
||||||
|
|||||||
Reference in New Issue
Block a user