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文件操作的更多相关文章

  1. golang 之文件操作

    文件操作要理解一切皆文件. Go 在 os 中提供了文件的基本操作,包括通常意义的打开.创建.读写等操作,除此以外为了追求便捷以及性能上,Go 还在 io/ioutil 以及 bufio 提供一些其他 ...

  2. python学习笔记(22)-os文件操作模块

    疑问: 如果打开操作一个文件,是用绝对路径好还是相对路径好? os模块,在lib下面,可以直接引入的,直接使用import. 一.新建一个目录,新建一个文件夹 import os #新建一个文件夹 o ...

  3. python文件操作os模块

    Python 统计某一文件夹下文件数量 使用python  pathlib模块 from pathlib import Path dir_path = ' ' print(len(list(Path( ...

  4. go语言文件操作,这期资料比较详细( 欢迎加入go语言群: 218160862 )

    go语言文件操作,这期资料比较详细 欢迎加入go语言群: go语言深圳群 golang深圳 218160862 点击加入 文件操作 func Open(name string) (file *File ...

  5. GO语言的进阶之路-Golang字符串处理以及文件操作

    GO语言的进阶之路-Golang字符串处理以及文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们都知道Golang是一门强类型的语言,相比Python在处理一些并发问题也 ...

  6. golang中的文件操作

    一.文件的基本介绍 文件是数据源(保存数据的地方)的一种,比如经常使用的word文档,txt文件,excel文件都是文件.文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声音等等. ...

  7. Golang字符串处理以及文件操作

    一.整数 1.int与uint的初值比较以及其大小. 1 /* 2 #!/usr/bin/env gorun 3 @author :xxxx 4 Blog:http://www.cnblogs.com ...

  8. Golang文件操作整理

    基本操作 文件创建 创建文件的时候,一定要注意权限问题,一般默认的文件权限是 0666 关于权限的相关内容,具体可以参考鸟叔p141 这里还是再回顾下,文件属性 r w x r w x r w x,第 ...

  9. Python os模块之文件操作

    基本概念:C:\\haoguo.txt 路径: C:\\ 文件名: haoguo 后缀名:.txt 1. 文件名与后缀分离 2. 路径与文件分离 3. 获取当前路径 4. 文件名与后缀合并 5. 路径 ...

  10. golang基础知识之文件操作

    读取文件所有内容以及获得文件操作对象 package mainimport ( "bufio" "fmt" "io" "io/io ...

随机推荐

  1. NetCore踩坑记1、 一块网卡引发的血案

    公司的项目架构演进,我们也趁机尝试迁移到netcore,系列随笔讲记录我们的踩坑和填坑记录. HttpClient不行? 这是我们第一次尝试netcore 简要介绍环境 netcore2.2+aspn ...

  2. 和我一起,重零开始学习Ant Design Pro开发解决方案(二)部署示例项目

  3. Django:web认识,jinja2模块,如何安装Django

    一内容概要 1.HTTP协议 1.1简介 ​ 超文本传输协议(英文:Hyper Text Transfer Protocol,HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是 ...

  4. C++线程同步之临界区

    #include <iostream> #include <windows.h> using namespace std; CRITICAL_SECTION cs; // Lo ...

  5. JavaScript函数参数传递

    Hello,今天和大家分享下JS中的一个基本概念:函数参数传递! 先来看看一个DEMO var str="hello world"; function func(s){ s=&qu ...

  6. [C#]DataTable转string[]

    来源:https://zhidao.baidu.com/question/1754089856824824548.html string[] ary = Array.ConvertAll<Dat ...

  7. SVN 提交失败 非LF行结束符

    来源:http://programerni.diandian.com/post/2012-09-06/40037220960 我使用svn一直很顺利,今天在改了两个地方之后,提交时输入了两句话(只有两 ...

  8. python02---基础数据类型

    python02---基础数据类型 一. 什么是数据类型 我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,&quo ...

  9. zabbix的psk加密结合zabbix_get取值

    转载:https://www.xj123.info/7386.html 参考文档:https://www.zabbix.com/documentation/3.0/manpages/zabbix_ge ...

  10. 渗透之路基础 -- 跨站伪造请求CSRF

    漏洞产生原因及原理 跨站请求伪造是指攻击者可以在第三方站点制造HTTP请求并以用户在目标站点的登录态发送到目标站点,而目标站点未校验请求来源使第三方成功伪造请求. XSS利用站点内的信任用户,而CSR ...