golang-os文件操作
golang-os文件操作
package main import (
"fmt"
"os"
) //func main() {
// f,err :=os.Create("/home/landv/testOne.txt")
// if err != nil {
// fmt.Println("create err:",err)
// return
// }
// defer f.Close()
// fmt.Println("successful")
//}
//func main() {
// f,err :=os.Open("/home/landv/testOne.txt") //以只读方式打开
// if err != nil {
// fmt.Println("create err:",err)
// return
// }
// defer f.Close()
// _, err = f.WriteString("这是一个One测试文件#######")
// if err != nil {
// fmt.Println("WriteString err:",err)
// return
// }
// fmt.Println("successful")
//}
func main() {
f,err :=os.OpenFile("/home/landv/testOne.txt",os.O_RDWR,)
if err != nil {
fmt.Println("create err:",err)
return
}else { content :="这是要追加的内容\n"
n,_ :=f.Seek(,)
_,err =f.WriteAt([]byte(content),n)
}
defer f.Close() //_, err = f.WriteString("这是一个One测试文件#######")
//
//if err != nil {
// fmt.Println("WriteString err:",err)
// return
//} fmt.Println("successful")
}
添加O_APPEND就可以追加内容了
f, err := os.OpenFile(fileName, os.O_WRONLY|os.O_APPEND, )
n,_ :=f.Seek(io.SeekStart,io.SeekEnd)
//使用常量好理解,当然你可以直接写(0,2)
文件读操作
package main import (
"bufio"
"fmt"
"io"
"os"
) func main() {
//_,err :=os.Create("D:/gotest/aaa.txt")
f,err :=os.OpenFile("D:/gotest/aaa.txt",os.O_RDWR,)
if err != nil{
fmt.Println("OpenFile err:",err)
return
}
defer f.Close()
fmt.Println("Suceessful")
//_, _ = f.WriteString("############\n") reader := bufio.NewReader(f) for {
buf, err := reader.ReadBytes('\n')
if err != nil && err==io.EOF{
fmt.Println("文件读取完毕")
return
}else if err != nil {
fmt.Println("err:", err)
}
fmt.Println(string(buf))
}
}
文件拷贝
package main import (
"fmt"
"io"
"os"
) func main() {
//打开读文件
f_r,err :=os.Open("/home/landv/testOne.txt")
if err != nil {
fmt.Println("Open err:",err)
return
}
defer f_r.Close()
//打开写文件
f_w,err :=os.Create("/home/landv/1.txt")
if err != nil {
fmt.Println("Create err:",err)
return
}
defer f_w.Close() //从文件中读取数据,放到缓冲区中
buf := make([]byte, )
//循环从读文件中,获取数据,原封不动的写到另一个文件中
for { n, err := f_r.Read(buf)
if err != nil && err == io.EOF {
fmt.Printf("读完了;n=%d\n", n)
return
}
_, _ = f_w.Write(buf[:n]) //读多少,写多少 }
}
目录操作
package main import (
"fmt"
"os"
) func main() { fmt.Println("请输入都要查询的目录:")
var path string
_, _ = fmt.Scan(&path) f, err := os.OpenFile(path, os.O_RDONLY, os.ModeDir)
if err != nil {
fmt.Println("err:", err)
}
defer f.Close() //读取目录项
info, err := f.Readdir(-)//-1 读取目录中所有的目录项
//变量返回的切片
for _, fileInfo := range info{
if fileInfo.IsDir(){
fmt.Println(fileInfo.Name(),"是一个目录")
fmt.Println("时间是:",fileInfo.ModTime())
}else {
fmt.Println(fileInfo.Name(),"是一个文件")
}
}
}
golang-os文件操作的更多相关文章
- golang 之文件操作
文件操作要理解一切皆文件. Go 在 os 中提供了文件的基本操作,包括通常意义的打开.创建.读写等操作,除此以外为了追求便捷以及性能上,Go 还在 io/ioutil 以及 bufio 提供一些其他 ...
- python学习笔记(22)-os文件操作模块
疑问: 如果打开操作一个文件,是用绝对路径好还是相对路径好? os模块,在lib下面,可以直接引入的,直接使用import. 一.新建一个目录,新建一个文件夹 import os #新建一个文件夹 o ...
- python文件操作os模块
Python 统计某一文件夹下文件数量 使用python pathlib模块 from pathlib import Path dir_path = ' ' print(len(list(Path( ...
- go语言文件操作,这期资料比较详细( 欢迎加入go语言群: 218160862 )
go语言文件操作,这期资料比较详细 欢迎加入go语言群: go语言深圳群 golang深圳 218160862 点击加入 文件操作 func Open(name string) (file *File ...
- GO语言的进阶之路-Golang字符串处理以及文件操作
GO语言的进阶之路-Golang字符串处理以及文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们都知道Golang是一门强类型的语言,相比Python在处理一些并发问题也 ...
- golang中的文件操作
一.文件的基本介绍 文件是数据源(保存数据的地方)的一种,比如经常使用的word文档,txt文件,excel文件都是文件.文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声音等等. ...
- Golang字符串处理以及文件操作
一.整数 1.int与uint的初值比较以及其大小. 1 /* 2 #!/usr/bin/env gorun 3 @author :xxxx 4 Blog:http://www.cnblogs.com ...
- Golang文件操作整理
基本操作 文件创建 创建文件的时候,一定要注意权限问题,一般默认的文件权限是 0666 关于权限的相关内容,具体可以参考鸟叔p141 这里还是再回顾下,文件属性 r w x r w x r w x,第 ...
- Python os模块之文件操作
基本概念:C:\\haoguo.txt 路径: C:\\ 文件名: haoguo 后缀名:.txt 1. 文件名与后缀分离 2. 路径与文件分离 3. 获取当前路径 4. 文件名与后缀合并 5. 路径 ...
- golang基础知识之文件操作
读取文件所有内容以及获得文件操作对象 package mainimport ( "bufio" "fmt" "io" "io/io ...
随机推荐
- cocos版本说明
一直知道cocos是做游戏的,想学习一下,结果去官网一看就懵逼了.Cocos Creator,Cocos2d-x,cocos studio,Cocos2d-js,Cocos2d-x-lua,那一种才是 ...
- SVN的branches、trunk、tags使用
本文针对实际开发过程中,svn使用到的trunk.branches.tags情况进行操作模拟, 一.创建trunk.branches.tags文件夹 我们在上文的svn仓库下创建trunk.branc ...
- ADO.NET 七(一个例子)
通过一个完整的实例实现课程信息管理功能的操作,包括查询.修改.删除课程信息等操作. 1) 创建课程信息表 create table StuCourse ( id int primary key ide ...
- 常用的MySQL命令
1.新建数据库: create database person; 2.使用数据库 use person: 3.创建一个表格 create table student ( id int(10) not ...
- glfw内存泄露测试
1. glfwInit() 和 glfwTerminate() 放在主线程 循环次数 1 内存 14M 循环次数100 46M 循环次数1000 49M 2. glfw ...
- 2.将多个元素设置为同一行?清除浮动有几种方式?【HTML】
1.将多个元素设置为同一行:float,inline-block 清除浮动的方式: 方法一:添加新的元素 .应用 clear:both: 方法二:父级div定义 overflow: hidden: 方 ...
- 【雅思】【绿宝书错词本】List25~36
List 25 ❤arable a.可耕作的 n.耕地 ❤congested a.拥挤不堪的:充塞的 ❤split v.(使)分裂,分离:(被)撕裂:裂开:劈开:分担,分享n.裂口:分化 ,分裂 ❤n ...
- instanceof 和isInstance
Java中的instanceof关键字 instanceof是Java的一个二元操作符,和==,>,<是同一类东东.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边 ...
- Scrapy 框架的使用
Scrapy 框架的介绍 Scrapy 是一个基于Twisted的异步处理框架,是纯Python实现的爬虫框架,其架构清晰模块之间的耦合成都低,可扩展性极强,可以灵活完成各种需求.我们只需要定制开发几 ...
- c# MatchCollection类