要解决这个问题,我们可以使用bufio.Writer
的Flush
方法来确保所有缓冲的数据都被写入文件中。然后我们可以关闭bufio.Writer
并打开一个新的bufio.Reader
来读取刚刚写入的内容。
下面是一个示例代码:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
// 创建一个文件并写入数据
fileName := "test.txt"
file, err := os.Create(fileName)
if err != nil {
fmt.Println("无法创建文件:", err)
return
}
defer file.Close()
writer := bufio.NewWriter(file)
writer.WriteString("Hello, World!")
writer.Flush() // 确保所有缓冲的数据都被写入文件中
// 关闭bufio.Writer并打开一个新的bufio.Reader来读取刚刚写入的内容
file.Close() // 先关闭文件
file, err = os.Open(fileName)
if err != nil {
fmt.Println("无法打开文件:", err)
return
}
defer file.Close()
reader := bufio.NewReader(file)
content, err := reader.ReadString('\n')
if err != nil {
fmt.Println("读取文件内容失败:", err)
return
}
fmt.Println("文件内容:", content)
}
在上面的代码中,我们首先创建一个文件并使用bufio.Writer
向文件中写入数据。然后我们使用Flush
方法来确保所有的缓冲数据都被写入文件。接下来,我们关闭文件并打开一个新的bufio.Reader
来读取刚刚写入的内容。最后,我们使用ReadString
方法读取文件内容并打印出来。
运行上面的代码,你应该能够看到输出结果为:"文件内容: Hello, World!"。这表明我们成功地从文件中读取到了刚刚写入的内容。