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

fix: 覆盖写入字符串到文件问题 (#128)

This commit is contained in:
ggymm
2023-08-24 16:36:44 +08:00
committed by GitHub
parent 91bc1a512c
commit e66ab154bc
2 changed files with 21 additions and 9 deletions

View File

@@ -594,9 +594,11 @@ func WriteCsvFile(filepath string, records [][]string, append bool) error {
// WriteStringToFile write string to target file. // WriteStringToFile write string to target file.
// Play: https://go.dev/play/p/GhLS6d8lH_g // Play: https://go.dev/play/p/GhLS6d8lH_g
func WriteStringToFile(filepath string, content string, append bool) error { func WriteStringToFile(filepath string, content string, append bool) error {
flag := os.O_RDWR | os.O_CREATE var flag int
if append { if append {
flag = flag | os.O_APPEND flag = os.O_RDWR | os.O_CREATE | os.O_APPEND
} else {
flag = os.O_RDWR | os.O_CREATE | os.O_TRUNC
} }
f, err := os.OpenFile(filepath, flag, 0644) f, err := os.OpenFile(filepath, flag, 0644)

View File

@@ -393,9 +393,7 @@ func TestWriteStringToFile(t *testing.T) {
t.Fail() t.Fail()
} }
defer file.Close() err = WriteStringToFile(filepath, "hello world", false)
err = WriteStringToFile(filepath, "hello", false)
if err != nil { if err != nil {
t.Fail() t.Fail()
} }
@@ -405,20 +403,32 @@ func TestWriteStringToFile(t *testing.T) {
t.Fail() t.Fail()
} }
err = WriteStringToFile(filepath, "hello", false)
if err != nil {
t.Fail()
}
content2, err := ReadFileToString(filepath)
if err != nil {
t.Fail()
}
err = WriteStringToFile(filepath, " world", true) err = WriteStringToFile(filepath, " world", true)
if err != nil { if err != nil {
t.Fail() t.Fail()
} }
content2, err := os.ReadFile(filepath) content3, err := os.ReadFile(filepath)
if err != nil { if err != nil {
t.Fail() t.Fail()
} }
assert.Equal("hello", content1) assert.Equal("hello world", content1)
assert.Equal("hello world", string(content2)) assert.Equal("hello", content2)
assert.Equal("hello world", string(content3))
os.Remove(filepath) _ = file.Close()
_ = os.Remove(filepath)
} }
func TestWriteBytesToFile(t *testing.T) { func TestWriteBytesToFile(t *testing.T) {