在Go语言中,I/O操作(输入/输出操作)是常见的编程任务之一。通过使用标准库提供的io
和相关的I/O包,我们可以进行文件读写、网络通信等操作。下面是一些常见的I/O操作示例:
- 文件读取:
package main
import (
"fmt"
"io/ioutil"
)
func main() {
// 读取整个文件的内容
data, err := ioutil.ReadFile("file.txt")
if err != nil {
fmt.Println("读取文件失败:", err)
return
}
fmt.Println(string(data))
}
在上述示例中,我们使用ioutil.ReadFile
函数读取了一个文件的内容,并将结果存储在data
变量中。如果读取过程中出现错误,我们会打印错误信息。
- 文件写入:
package main
import (
"fmt"
"io/ioutil"
)
func main() {
content := []byte("Hello, World!")
err := ioutil.WriteFile("file.txt", content, 0644)
if err != nil {
fmt.Println("写入文件失败:", err)
return
}
fmt.Println("文件写入成功")
}
在上述示例中,我们使用ioutil.WriteFile
函数将一个字符串写入文件。其中,0644
是文件的访问权限。
- 标准输入输出:
package main
import (
"fmt"
"os"
)
func main() {
var name string
fmt.Print("请输入你的名字: ")
fmt.Scanln(&name)
fmt.Println("你好,", name)
}
在上述示例中,我们通过fmt.Scanln
函数从标准输入获取用户的输入,并将其存储在name
变量中。然后,我们使用fmt.Println
函数将一条问候语输出到标准输出。
- 网络通信:
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
resp, err := http.Get("https://www.example.com")
if err != nil {
fmt.Println("请求失败:", err)
return
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
fmt.Println("读取响应失败:", err)
return
}
fmt.Println(string(body))
}
在上述示例中,我们使用net/http
包发送一个HTTP GET请求,并读取响应的内容。最后,我们将响应内容打印出来。
这只是一些常见的I/O操作示例,Go语言提供了丰富的I/O库和工具,可以满足更复杂的需求,如读写CSV文件、处理JSON等。你可以根据具体的需求,参考相关文档和示例代码来进行更多的I/O操作。