【Go】I/O操作(输入/输出操作)

在Go语言中,I/O操作(输入/输出操作)是常见的编程任务之一。通过使用标准库提供的io和相关的I/O包,我们可以进行文件读写、网络通信等操作。下面是一些常见的I/O操作示例:

  1. 文件读取:
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变量中。如果读取过程中出现错误,我们会打印错误信息。

  1. 文件写入:
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是文件的访问权限。

  1. 标准输入输出:
package main

import (
	"fmt"
	"os"
)

func main() {
    
    
	var name string
	fmt.Print("请输入你的名字: ")
	fmt.Scanln(&name)

	fmt.Println("你好,", name)
}

在上述示例中,我们通过fmt.Scanln函数从标准输入获取用户的输入,并将其存储在name变量中。然后,我们使用fmt.Println函数将一条问候语输出到标准输出。

  1. 网络通信:
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操作。

猜你喜欢

转载自blog.csdn.net/fanjufei123456/article/details/132098792