mirror of
https://github.com/duke-git/lancet.git
synced 2026-02-14 01:32:27 +08:00
fix: 覆盖写入字符串到文件问题 (#128)
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user