当前位置: 首页> 科技> IT业 > 免费网站app源码_a级生活片免费_重庆百度总代理_小红书网络营销策划方案

免费网站app源码_a级生活片免费_重庆百度总代理_小红书网络营销策划方案

时间:2025/8/1 12:20:41来源:https://blog.csdn.net/a18434646561/article/details/145571151 浏览次数:0次
免费网站app源码_a级生活片免费_重庆百度总代理_小红书网络营销策划方案

参考文档:https://www.liwenzhou.com/posts/Go/file/

读取文件

package main  import (  "fmt"  "io"    "os")  func main() {  file, err := os.Open("./data.txt")  if err != nil {  fmt.Println("open file err:", err)  return  }  defer file.Close()  var tmp = make([]byte, 1024)  n, err := file.Read(tmp)  if err == io.EOF {  fmt.Println("文件读取完毕")  return  }  fmt.Printf("读取了%d字节数据\n", n)  fmt.Println(string(tmp))  
}

上面这个代码只是读取了文件中的1024个字节,并没有读取完文件内的所有内容,下面我们使用循环读取将文件全部读取

package main  import (  "fmt"  "io"    "os")  func main() {  file, err := os.Open("./data.txt")  if err != nil {  fmt.Println("open file err:", err)  return  }  defer file.Close()  var content []byte  var tmp = make([]byte, 10)  var sumByte int  for {  n, err := file.Read(tmp)  if err == io.EOF {  fmt.Println("文件读取完毕")  break  }  if err != nil {  fmt.Println("read file failed", err)  return  }  sumByte += n  content = append(content, tmp[:n]...)  }  fmt.Println(string(content))  fmt.Println("读取了", sumByte, "字节")  }

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

bufio读取文件

bufio是在file的基础上封装了一层API,支持更多的功能。

package main  import (  "bufio"  "fmt"    "io"    "os")  func main() {  file, err := os.Open("data.txt")  if err != nil {  fmt.Println("file open failed", err)  return  }  defer file.Close()  reader := bufio.NewReader(file)  for {  line, err := reader.ReadString('\n')  if err == io.EOF {  if len(line) != 0 {  fmt.Println(line)  }  fmt.Println("文件读完了")  break  }  if err != nil {  fmt.Println("read file err:", err)  return  }  fmt.Println(line)  }  
}

os.ReadFIle读取整个文件

package main  import (  "fmt"  "os")  func main() {  content, err := os.ReadFile("./data.txt")  if err != nil {  fmt.Println("read file failed:", err)  return  }  fmt.Println(string(content))  
}

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

文件写入

Write和WriteString

package main  import (  "fmt"  "os")  func main() {  file, err := os.OpenFile("./data.txt", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)  if err != nil {  fmt.Println("file open failed err:", err)  return  }  defer file.Close()  str := "good"  file.Write([]byte(str))  //file.WriteString(str)  
}

使用os.WriteFile函数

package main  import (  "fmt"  "os")  func main() {  str := "helloworld"  err := os.WriteFile("./data.txt", []byte(str), 0666)  if err != nil {  fmt.Println("write file failed, err : ", err)  return  }  
}

Practice

复制一个文件中的内容到另一个文件

package main  import (  "fmt"  "io"    "os")  func main() {  src, err := os.OpenFile("data.txt", os.O_RDONLY, 0666)  if err != nil {  fmt.Println("open file failed,err", err)  return  }  defer src.Close()  var content []byte  buf := make([]byte, 1024)  for {  n, err := src.Read(buf)  if err == io.EOF {  break  }  content = append(content, buf[:n]...)  }  dst, err := os.OpenFile("copy.txt", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)  if err != nil {  fmt.Println("open file failed,err", err)  return  }  dst.Write(content)  defer dst.Close()  
}

其实可以用系统的io.Copy函数

package main  import (  "fmt"  "io"    "os")  func CopyFile(source, destination string) {  src, err := os.OpenFile(source, os.O_RDONLY, 0666)  if err != nil {  fmt.Println("open file failed,err", err)  return  }  defer src.Close()  dst, err := os.OpenFile(destination, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)  if err != nil {  fmt.Println("open file failed,err", err)  return  }  defer dst.Close()  _, err = io.Copy(dst, src)  if err != nil {  fmt.Println("copy file failed,err: ", err)  return  }  
}  
func main() {  var source string = "data.txt"  var destination string = "copy.txt"  CopyFile(source, destination)  
}

用go实现cat基本功能

package main  import (  "fmt"  "os")  func main() {  if len(os.Args) < 2 {  fmt.Println("Usage: cat <filename>")  return  }  filename := os.Args[1]  content, err := os.ReadFile(filename)  if err != nil {  fmt.Println("open file failed,err: ", err)  return  }  fmt.Printf("%v", string(content))  
}

用go实现拷贝文件到另一个文件

package mainimport ("io""os"
)func CopyFile(dstName, srcName string) error {src, err := os.Open(srcName)if err != nil {return err}defer src.Close()dst, err := os.Create(dstName)if err != nil {return err}defer dst.Close()_, err = io.Copy(dst, src)if err != nil {return err}return nil
}
func main() {CopyFile("./test.txt", "./go.mod")
}
关键字:免费网站app源码_a级生活片免费_重庆百度总代理_小红书网络营销策划方案

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: