文件写入、追加、读取、复制不是问题

简介: 文件写入、追加、读取、复制不是问题

概述

在 Go 语言中,文件操作是开发中不可避免的一部分。

本文将简单介绍 Go 语言中文件的写入、追加、读取和复制操作,为你提供详细的指南。通过详细的示例代码和注释,帮助读者更好地理解和运用这些文件操作。


 

1. 写入文件

文件写入是将数据保存到文件的过程。在 Go 语言中,可以使用 osio 包来实现文件写入操作。


package main
import (  "fmt"  "os")
func writeFile(filename, content string) error {  // 创建或打开文件,以写入模式打开,权限为0666  file, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE, 0666)  if err != nil {    return err  }  defer file.Close()
  // 写入内容到文件  _, err = file.WriteString(content)  if err != nil {    return err  }
  fmt.Printf("成功写入文件:%s\n", filename)    return nil}
func main() {  filename := "example.txt"    content := "Hello, Go File Handling!"
  err := writeFile(filename, content)    if err != nil {    fmt.Println("写入文件时发生错误:", err)  }}


 

2. 文件追加

文件追加是在已有文件的末尾添加新的内容。用 os包中的 OpenFile 函数,并将 os.O_APPEND 标志传递给Open 参数,以打开文件并进行追加。


package main
import (  "fmt"  "os")
func appendToFile(filename, content string) error {  // 以追加模式打开文件,权限为0666  file, err := os.OpenFile(filename, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0666)  if err != nil {    return err  }  defer file.Close()
  // 追加内容到文件  _, err = file.WriteString(content)  if err != nil {    return err  }
  fmt.Printf("成功追加内容到文件:%s\n", filename)  return nil}
func main() {  filename := "example.txt"  content := "\nAppending more content!"
  err := appendToFile(filename, content)  if err != nil {    fmt.Println("追加文件时发生错误:", err)  }}


 

3. 文件读取

读取文件是从文件中获取数据的过程。使用 io/ioutil 包的 ReadFile 函数,该函数返回文件的全部内容。


package main
import (  "fmt"  "io/ioutil")
func readFile(filename string) (string, error) {  // 读取文件的全部内容  content, err := ioutil.ReadFile(filename)  if err != nil {    return "", err  }
  return string(content), nil}
func main() {  filename := "example.txt"
  content, err := readFile(filename)  if err != nil {    fmt.Println("读取文件时发生错误:", err)    return  }
  fmt.Printf("文件内容:%s\n", content)}


 

4. 文件复制

文件复制是将一个文件的内容复制到另一个文件的过程。使用 io.Copy 函数可以有效地完成文件复制。


package main
import (  "fmt"  "io"  "os")
func copyFile(source, destination string) error {  // 打开源文件  sourceFile, err := os.Open(source)  if err != nil {    return err  }  defer sourceFile.Close()
  // 创建目标文件  destinationFile, err := os.Create(destination)  if err != nil {    return err  }  defer destinationFile.Close()
  // 使用io.Copy复制文件内容  _, err = io.Copy(destinationFile, sourceFile)  if err != nil {    return err  }
  fmt.Printf("成功复制文件:%s 到 %s\n", source, destination)  return nil}
func main() {  source := "example.txt"  destination := "copy_of_example.txt"
  err := copyFile(source, destination)  if err != nil {    fmt.Println("复制文件时发生错误:", err)  }}


 

总结


通过本文,已经学习了 Go 语言中文件的写入、追加、读取和复制操作。

这些操作是处理文件时的基本需求,熟练掌握它们将使你在日常开发中更加得心应手。

目录
相关文章
|
1月前
|
Android开发
文件的读取
本文介绍了文件读取和写入操作的基本概念,包括输入输出流的创建、数据读取和写入以及流的关闭。
33 1
|
8天前
从文件中读取一行
从文件中读取一行。
17 5
|
2月前
同步读取文件
同步读取文件
43 0
|
6月前
|
弹性计算 运维 Shell
向文件中追加内容
【4月更文挑战第29天】
45 2
|
11月前
|
XML C# 数据格式
C#读取写入文件的三种方式
最近对文件的操作比较频繁。这里记录一下常用的几种文件读写的方式。 我这里使用窗体来做测试,例子在文末,可下载。
91 0
从文件1中读取数据,修改数据的内容,然后存入文件2中,再从文件2中把数据读取出来显示在屏幕上
从文件1中读取数据,修改数据的内容,然后存入文件2中,再从文件2中把数据读取出来显示在屏幕上
150 0
|
大数据 C#
C# 读取大文件 (可以读取3GB大小的txt文件)
原文:C# 读取大文件 (可以读取3GB大小的txt文件) 在处理大数据时,有可能 会碰到 超过3GB大小的文件,如果通过 记事本 或 NotePad++去打开它,会报错,读不到任何文件。
4244 1
|
Java
I/O流常用复制和读写文件
I/O流常用复制和读写文件
122 0
|
C#
C#选择多个文件并读取多个文件数据
原文:C#选择多个文件并读取多个文件数据 版权声明:本文为博主原创文章,转载请附上链接地址。 https://blog.csdn.net/ld15102891672/article/details/80586097 ...
1533 0