Maison >développement back-end >Golang >Explication détaillée des opérations d'E/S en langage Go
Le langage Go est un langage de programmation open source développé par Google. Il est conçu pour se concentrer sur la simplicité, l'efficacité et les performances de concurrence. Dans le langage Go, les opérations d'E/S sont une partie très courante et importante. Cet article présentera en détail les opérations d'E/S dans le langage Go, y compris la lecture et l'écriture de fichiers, la communication réseau, etc., et fournira des exemples de code spécifiques. .
En langage Go, vous pouvez utiliser la fonction os.Open
pour ouvrir un fichier pour les opérations de lecture. L'exemple de code est le suivant : os.Open
函数打开一个文件进行读取操作,示例代码如下:
package main import ( "fmt" "os" ) func main() { file, err := os.Open("sample.txt") if err != nil { fmt.Println("文件打开失败:", err) return } defer file.Close() buf := make([]byte, 1024) n, err := file.Read(buf) if err != nil { fmt.Println("文件读取失败:", err) return } fmt.Println(string(buf[:n])) }
使用os.Create
函数创建一个新文件进行写入操作,示例代码如下:
package main import ( "fmt" "os" ) func main() { file, err := os.Create("output.txt") if err != nil { fmt.Println("文件创建失败:", err) return } defer file.Close() data := []byte("Hello, World!") _, err = file.Write(data) if err != nil { fmt.Println("文件写入失败:", err) return } fmt.Println("文件写入成功") }
使用net
包可以很方便地实现TCP服务器,示例代码如下:
package main import ( "fmt" "net" ) func handleConnection(conn net.Conn) { defer conn.Close() buf := make([]byte, 1024) n, err := conn.Read(buf) if err != nil { fmt.Println("读取数据失败:", err) return } fmt.Println("接收到客户端数据:", string(buf[:n])) } func main() { listener, err := net.Listen("tcp", "localhost:8888") if err != nil { fmt.Println("TCP服务器启动失败:", err) return } defer listener.Close() fmt.Println("TCP服务器启动成功,监听端口8888") for { conn, err := listener.Accept() if err != nil { fmt.Println("接受连接失败:", err) continue } go handleConnection(conn) } }
使用net
package main import ( "fmt" "net" ) func main() { conn, err := net.Dial("tcp", "localhost:8888") if err != nil { fmt.Println("连接服务器失败:", err) return } defer conn.Close() data := []byte("Hello, Server!") _, err = conn.Write(data) if err != nil { fmt.Println("发送数据失败:", err) return } fmt.Println("发送数据成功") }Fichier. écriture Utilisez la fonction
os.Create
pour créer un nouveau fichier pour les opérations d'écriture. L'exemple de code est le suivant : 🎜rrreee🎜Communication réseau🎜🎜Serveur TCP🎜🎜Utilisation du net<. le package> peut être très pratique. Pour implémenter un serveur TCP, l'exemple de code est le suivant : 🎜rrreee🎜Client TCP🎜🎜En utilisant le package <code>net
, vous pouvez également implémenter un client TCP. Le code est le suivant : 🎜rrreee🎜Ce qui précède concerne les opérations d'E/S en langage Go. Introduction détaillée et exemples de code spécifiques. J'espère que cela sera utile aux lecteurs. Bienvenue à continuer à prêter attention à davantage d'articles sur le langage Go. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!