GoLang操作文件的方法有很多,这里记录和归纳一下。主要有create/NewFile/Open/OpenFile/Pipe这5个。
func Create(name string) (file *File, err error) func NewFile(fd uintptr, name string) *File func Open(name string) (file *File, err error) func OpenFile(name string, flag int, perm FileMode) (file *File, err error) func Pipe() (r *File, w *File, err error)
Create方法是默认创建一个权限是0666的空文件,如果文件已经存在就清空它。如果运行成功,就返回一个可以做I/O操作的文件,他的权限是O_RDWR。如果错误,就返回*PathError.
NewFile方法是安装给定的文件描述和名字生成一个文件。
Open打开该文件用于读取,如果成功,返回一个用于读取的文件,文件权限是O_RDONLY。如果错误,就返回*PathError。
OpenFile是一个广义的调用,大部分的用户使用Create或者Open方法。可以按照指定的flag和perm去打开文件。成功返回一个可用于I/O的文件,错误就返回*PathError。
Pipe返回一对连接文件,从r读取,返回bytes写到w。
另外:
const ( O_RDONLY int = syscall.O_RDONLY // open the file read-only. O_WRONLY int = syscall.O_WRONLY // open the file write-only. O_RDWR int = syscall.O_RDWR // open the file read-write. O_APPEND int = syscall.O_APPEND // append data to the file when writing. O_CREATE int = syscall.O_CREAT // create a new file if none exists. O_EXCL int = syscall.O_EXCL // used with O_CREATE, file must not exist O_SYNC int = syscall.O_SYNC // open for synchronous I/O. O_TRUNC int = syscall.O_TRUNC // if possible, truncate file when opened. )
//读取文件 package main import( "os" "fmt" "flag" ) func main(){ flag.Parse() file := flag.Arg(0) f,err := os.Open(file) if err != nil{ panic(err) } defer f.Close() buf := make([]byte,100) for{ rint,_ := f.Read(buf) if 0==rint{break} fmt.Println(string(buf[:rint])) //os.Stdout.Write(buf[:rint]) } }
//使用bufio读取 package main import( "os" "bufio" "fmt" "flag" ) func main(){ flag.Parse() file := flag.Arg(0) f, err := os.Open(file) if err != nil{ panic(err) } defer f.Close() br :=bufio.NewReader(f) /* buffer := bytes.NewBuffer(make([]byte,1024)) for{ if part,prefix,err1 := br.ReadLine(); err1!=nil{ break } buffer.Write(part) if !prefix{ lines = append(lines,buffer.String()) buffer.Reset() } } fmt.Println(lines) */ for { line,err1:=br.ReadString("\n") if err == os.EOF{ break }else{ fmt.Printf("%v",line) } } }
相关推荐
在Golang中,如果你想要实现音频播放功能,特别是在处理MP3文件时,可以利用外部库,比如BASS库。BASS是一个广泛使用的音频处理库,它提供了强大的音频播放、流处理和格式转换功能。在Golang中使用BASS库通常需要...
delete_tool.exe是一个可执行文件,它利用了Golang强大的文件操作能力,能够快速遍历指定目录,对其中的文件进行批量删除操作。这个工具的出现,极大地简化了用户手动删除大量文件的繁琐过程,提升了工作效率。 ...
这是一个基于Golang后端和Vue.js前端开发的文件管理系统的源码包。下面将详细介绍这个系统的核心技术和实现原理。 **Golang(Go语言)** Golang是Google开发的一种静态类型、编译型、并发型、垃圾回收的编程语言。...
Go的`os`和`io`包提供了基本的文件操作API,而`fs`包则提供了更高级的抽象,如文件描述符和文件系统接口。此外,可以使用数据库(如SQLite或MySQL)来持久化文件元数据,以支持快速查询和权限管理。 **WebRTC与P2P...
本文将详细讲解基于Golang实现的文件去重小工具,以及与之相关的技术知识点,包括Git提交历史查看、代码注释、跨平台可执行文件构建、Excel数据处理和Docker容器化部署。 首先,我们要讨论的是Golang语言本身。...
以下是一个简单的示例,展示了如何使用Golang进行鼠标操作: ```go package main import ( "time" "github.com/go-robotstxt/robotstxt" ) func main() { for { // 模拟鼠标点击 robotstxt.ClickMouse...
本文将深入探讨如何在Source Insight中配置和使用Go语言解析功能,以及解析文件`golang.xclf`的作用。 首先,让我们了解`golang.xclf`文件。这是一个自定义语言格式文件,用于Source Insight识别和解析特定语言的...
树莓派是一种基于Linux的操作系统,通常使用Raspberry Pi OS(以前称为Raspbian),它是一个基于Debian的轻量级发行版。为了在树莓派上安装Go 17.6,我们首先需要确保系统是最新的。 1. 更新系统: 在命令行终端中...
植入允许您通过生成文件static.go来执行此操作,该文件包含特定目录层次结构的内容。 在运行时,您可以列出可用文件,并提取特定文件的内容。过时的通过添加用于将资源嵌入生成的二进制文件中的go embed语法,go v...
对于解密操作,你可以使用`crypto/rsa`包。 ```go pub, err := x509.ParseRSAPublicKeyFromPEM(publicKeyBytes) if err != nil { // 解析公钥失败 } decryptedData, err := rsa.DecryptPKCS1v15(rand.Reader...
大家一起学Golang——文件操作 文件操作 对文件操作几乎每个编程语言都有,Go后端开发中对日志操作较多。 创建 、打开文件 创建两种方式: func Create(name string) (file *FIle, err Error) 返回文件对象,默认...
GoLang Notepad++语法高亮配置文件是一种优化编程体验的方式,尤其对于经常使用Notepad++编辑Go语言代码的开发者来说,这是一个非常实用的功能。本文将详细介绍如何在Notepad++中设置Go语言的语法高亮,并探讨其重要...
在上传多个文件或处理多个FTP任务时,可以使用goroutine并配合channel实现高效的并发操作。 6. **错误处理**:在实现FTP功能时,必须处理各种可能出现的错误,如网络连接失败、认证错误、文件传输错误等。Go的错误...
在Linux操作系统中,获取文件的访问、创建和修改时间是一项基本的文件操作。Golang作为一种强大的系统级编程语言,...通过学习和实践,我们可以更好地掌握Golang在处理文件系统操作方面的功能,提高我们的开发效率。
在Golang中,可以生成一个包含管理员权限请求的manifest文件,并将其嵌入到可执行文件中。当程序启动时,Windows会自动检测到这个manifest并根据其内容决定是否提示用户提升权限。具体做法是在项目中创建一个`...
`Go-mini-golang包`为Go开发者提供了一种方便的方式来读取和操作这些文件。以下是该库的主要功能: 1. **加载配置文件**:库提供了函数用于加载ini配置文件到内存中,例如`LoadConfigFile()`函数,它可以将指定路径...
在本文中,我们将深入探讨如何使用Golang来构建一个包含路由转发、MySQL集成以及Redis连接的应用。我们将重点关注Golang的特性,如路由处理、数据库连接、并发处理(goroutines)以及通道(chan)的使用。 首先,让...
- **并发性**:Golang的goroutine和channel使得在处理多文件同步时能实现高效的并发操作。 - **跨平台**:Golang的编译器生成的可执行文件无需额外依赖,可在多种操作系统上运行。 - **内存管理**:Golang的垃圾回收...
1. **文件系统操作**:Golang的`os`和`path/filepath`库提供了对文件系统的基本操作。`filepath.Walk()`函数可以递归地遍历指定的目录,访问每个文件和子目录,这正是搜索视频文件的基础。 2. **文件类型判断**:...
- **编写代码**:创建一个新的Go文件,例如`golang-demo.go`,并引入AWS SDK中的S3包。接着,你可以使用SDK提供的函数来执行操作,如上传、下载、列举或删除S3对象。以下是一个简单的示例: ```go package main ...