Golang 文件读写
在 Golang 中,文件的读写主要是通过 os
和 io
包来实现的。以下是一些基本的文件读写操作:
- 使用
os.Open
打开文件进行读操作:
package main
import (
"fmt"
"io/ioutil"
"os"
)
func main() {
file, err := os.Open("test.txt")
if err != nil {
fmt.Println("Error:", err)
return
}
defer file.Close()
data, err := ioutil.ReadAll(file)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Contents of file:", string(data))
}
- 使用
os.Create
创建文件进行写操作:
package main
import (
"fmt"
"os"
)
func main() {
file, err := os.Create("test.txt")
if err != nil {
fmt.Println("Error:", err)
return
}
defer file.Close()
_, err = file.Write([]byte("Hello, World!"))
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Content written to file")
}
- 使用
bufio
包进行文件的高效读写操作:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
file, err := os.Open("test.txt")
if err != nil {
fmt.Println("Error:", err)
return
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil {
fmt.Println("Error:", err)
return
}
}
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
file, err := os.Create("test.txt")
if err != nil {
fmt.Println("Error:", err)
return
}
defer file.Close()
writer := bufio.NewWriter(file)
_, err = writer.WriteString("Hello, World!")
if err != nil {
fmt.Println("Error:", err)
return
}
err = writer.Flush()
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Content written to file")
}
- 使用
ioutil.ReadFile
和ioutil.WriteFile
进行一次性读写操作:
package main
import (
"fmt"
"io/ioutil"
)
func main() {
data, err := ioutil.ReadFile("test.txt")
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Contents of file:", string(data))
err = ioutil.WriteFile("test.txt", []byte("Hello, World!"), 0644)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Content written to file")
}
以上是一些基本的文件读写操作,在实际应用中可以根据需要选择合适的方法。
评论已关闭