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. 记一次git merge 事故

    最近发生在自己身上的一件矬事儿,一不小心把matser上别人的代码给冲掉了,事后追溯了下原因. 1.准备三个分支,分别从master拉取 realease/v1.0分支 和 realease/bugf ...

  2. 文件流CopyTo

  3. ABAP-Eclipse ADT中创建ABAP CDS视图

    Create an ABAP Project in ABAP Development Tools (ADT): https://developers.sap.com/tutorials/abap-cr ...

  4. linux识别ntfs U盘

    NTFS-3G 是一个开源的软件,可以实现 Linux.Free BSD.Mac OSX.NetBSD 和 Haiku 等操作系统中的 NTFS 读写支持 下载最新ntfs-3g源代码,编译安装 # ...

  5. [C#(WinForm)]判断第一次启动程序

    来源:https://bbs.csdn.net/topics/220023353/(10楼) 在判断窗口上添加: string strIsFirstRun = "false"; b ...

  6. python 版本号比较 重载运算符

    # -*- coding: utf-8 -*- class VersionNum(object): """ 版本号比较 默认版本以“.”分割,各位版本位数不超过3 例一: ...

  7. Computer Vision_33_SIFT:Fast Adaptive Bilateral Filtering——2018

    此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...

  8. 解决linux下创建用户时出现 Creating mailbox file: 文件已存在

    原来linux下添加用户后,会在系统里自动加一个邮箱(系统邮箱),路径是:/var/spool/mail/用户名.      可以直接用命令#rm -rf /var/spool/mail/用户名    ...

  9. [极客-Linux] 04 Linux命令

    创建用户: useradd 装文件: CentOS:   (软件管家yum) rpm -i xxx.rpm Ubuntu:   (apt-get) dpkg -i xxx.deb nohup: no ...

  10. php工具、拓展下载地址

    php工具.拓展下载地址 php各版本下载地址: https://windows.php.net/downloads/releases/archives/ php_redis 下载地址 windwos ...