FileInfo接口

package main

import (
"fmt"
"os"
) // FileInfo 接口文件的信息包括文件名、文件大小、修改权限、修改时间等。 func main() {
filePath:="C:\\Users\\sixinshuier\\Desktop\\分布式训练\\分布式训练.txt"
fileInfo,err:=os.Stat(filePath)
if err!=nil{
fmt.Println(err)
}else {
fmt.Println("文件名:",fileInfo.Name())
fmt.Println("文件大小",fileInfo.Size())
fmt.Println("文件权限",fileInfo.Mode())
fmt.Println("是否是文件夹",fileInfo.IsDir())
fmt.Println("修改时间",fileInfo.ModTime())
}
}

输出

文件名: 分布式训练.txt
文件大小 0
文件权限 -rw-rw-rw-
是否是文件夹 false
修改时间 2020-05-28 16:46:51.7140497 +0800 CST

文件路径:

filepath.IsAbs() : 判断是否绝对路径

filepath.Rel(): 获取相对路径

filepath.Abs() :获取绝对路径

path.join(): 拼接路径

创建目录:

os.MKdir()仅创建一层目录

os.MKdirAll()创建多层目录。

创建文件:

os.Create()创建文件,如果文件存在,会将其覆盖。

打开和关闭文件:

os.OpenFile(filename,mode,perm)
mode:文件打开方式
perm:文件的权限。文件不存在时创建文件,需要指定权限

删除文件:

os.Remove(filename)

文件读取:

package main

import (
"fmt"
"io"
"os"
) // 文件读取
func main() {
filePath:="C:\\Users\\sixinshuier\\Desktop\\分布式训练\\分布式训练.txt"
file,err:=os.Open(filePath)
if err!=nil{
fmt.Println(err)
}else {
bs:= make([]byte,1024*128,1024*128)
for{
n,err:=file.Read(bs)
if n==0 || err==io.EOF {
fmt.Println("读取文件结束!")
break
}
fmt.Println(string(bs[:n]))
}
}
file.Close()
}

文件写入:

package main

import (
"fmt"
"os"
) // 文件写入 func main() {
filePath:="C:\\Users\\sixinshuier\\Desktop\\分布式训练\\分布式训练.txt"
file,err:=os.Open(filePath)
defer file.Close()
if err!=nil{
fmt.Println(err)
}else {
n,err:=file.Write([]byte("test write...."))
if err!=nil{
fmt.Println(err)
}else {
fmt.Println(n)
}
}
}

ioutil包:

ReadFile()  读取文件中所有的数据,返回读取的字节数组

WriteFile()向指定文件写入数据,如果文件不存在,则创建文件,写入数据之前清空文件

bufio

bufio实现了带缓冲的I/O操作,达到高效读写。

bufio包对io包下的对象Reader、Writer进行包装,分别实现了io.Reader和io.Writer接口,提供了数据缓冲功能,能够一定程度减少大块数据读写带来的开销,所以bufio比直接读写更快。

package main

import (
"bufio"
"fmt"
"io"
"os"
) // bufino 读取文件 func main() {
filePath:="C:\\Users\\sixinshuier\\Desktop\\分布式训练\\分布式训练.txt"
// 打开文件
file,err:=os.Open(filePath)
defer file.Close()
if err!=nil{
fmt.Println(err)
}else {
// 创建缓冲区
reader:= bufio.NewReader(file)
fmt.Printf("%T",reader)
for {
// 读取文件
s,err:=reader.ReadString('\n')
if err==io.EOF{
break
}else {
fmt.Println(s)
} }
}
}

Go-25-文件管理的更多相关文章

  1. python学习笔记25(文件管理 os包)

    os包我们经常会与文件和目录打交道,对于这些操作python提供了一个os模块,里面包含了很多操作文件和目录的函数.如果你对linux基本操作了解的话,下面的一些os方法应该会很熟悉的,因为基本和li ...

  2. java springMVC SSM 操作日志 4级别联动 文件管理 头像编辑 shiro redis

    A 调用摄像头拍照,自定义裁剪编辑头像 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单;  技术:313596790freemaker模版技术 ,0个代码不用写 ...

  3. Python-day3作业-haproxy配置文件管理脚本

    #!/usr/bin/env python import os,sys,time,re,prettytable,json from collections import defaultdict,Ord ...

  4. oracle密码文件管理

    密码文件 密码文件作用: 密码文件用于dba用户的登录认证. dba用户:具备sysdba和sysoper权限的用户,即oracle的sys和system用户. 本地登录: 1)操作系统认证: [or ...

  5. atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 。打开浏览服务器文件夹java .net php

    atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 .打开浏览服务器文件夹java .net php 1. 环境:::项目java web,需要打开浏览服 ...

  6. 盘点Windows 8.1中隐藏着的25个秘密功能

    Windows 8.1正式版问世,带来了众多大家早已耳熟能详的“开始按钮”.“分屏显示”等功能.事实上,Windows 8.1贴心的设计细节有很多,多数细节隐藏于系统中某个不起眼的角落,科技网站PC ...

  7. Oracle体系结构之oracle密码文件管理

    密码文件 密码文件作用: 密码文件用于dba用户的登录认证. dba用户:具备sysdba和sysoper权限的用户,即oracle的sys和system用户. 本地登录: 1)操作系统认证: [or ...

  8. Oracle管理监控 之 rac环境密码文件管理

    密码文件作用: 密码文件用于dba用户的登录认证. dba用户:具备sysdba和sysoper权限的用户,即oracle的sys和system用户. RAC环境中多个节点的密码文件应该保证一致,否则 ...

  9. 第25章 串行FLASH文件系统FatFs

    25.1  文件系统 即使读者可能不了解文件系统,读者也一定对“文件”这个概念十分熟悉.数据在PC上是以文件的形式储存在磁盘中的,这些数据的形式一般为ASCII码或二进制形式.在上一章我们已经写好了Q ...

  10. 【第六章】MySQL日志文件管理

    1.日志文件管理概述: 配置文件:/etc/my.cnf 作用:MySQL日志文件是用来记录MySQL数据库客户端连接情况.SQL语句的执行情况以及错误信息告示. 分类:MySQL日志文件分为4种:错 ...

随机推荐

  1. Javascript中的事件冒泡与捕获

    事件冒泡和事件捕获 起因:今天在封装一个bind函数的时候,发现el.addEventListener函数支持第三个参数,useCapture:是否使用事件捕获,觉得有点模糊 Js事件流 页面的哪一部 ...

  2. JS广度优先遍历

    自己用JS实现了 广度优先遍历 第一种用了数组的高阶函数,看起来有些复杂.然后思索着从可读性上优化了一下,孰优孰劣以后分析. var list = [{ id: "ab", chi ...

  3. java自学第4期——:Scanner类、匿名对象介绍、Random类、ArrayList集合、标准类格式、String类、static静态、Arrays工具类、Math类(1)

    一.Scanner类 1.api简介: 应用程序编程接口 2.Scanner类: 作用:获取键盘输入的数据 位置: java.util.Scanner. 使用:使用成员方法nextInt() 和 ne ...

  4. DRF 外键字段深度查询优化、ListSerializer辅助完成群改

    目录 一.Response封装 二.外键字段深度查询 1.序列化配置exclude.depth 2.模型层函数.插拔式字段查询 三.listserializer辅助类 一.Response封装 用de ...

  5. Python逻辑面试题

    1 # *****************************列表操作***************************** 2 # names = ["Lihua",&q ...

  6. javascript中的内存管理

    目录 简介 内存生命周期 JS中的垃圾回收器 引用计数垃圾回收算法 Mark-and-sweep回收算法 调试内存问题 闭包Closures中的内存泄露 javascript中的内存管理 简介 在c语 ...

  7. Linux速通 大纲

    1.Linux操作系统安装及初始化配置(熟悉) 2.Linux操作系统目录组成结构及文件级增删改查操作(重点) 3.Linux操作系统用户.权限管理(重点) 4.开源软件及Linux下软件包的管理(重 ...

  8. vue 树形数据增加属性并计算树节点的深度

    需求:在一组菜单树结构中转换数据结构(增加一些属性),并计算该树结构的节点深度. 实现util.js: function transferTreeData(arr, vm, list, level, ...

  9. P3796 【模板】AC自动机(加强版) 题解(Aho-Corasick Automation)

    题目链接 AC自动机 解题思路 AC自动机模板题. 刚学AC自动机,写一篇博客增强理解. AC自动机最关键的一点在于,\(fail\)失配指针的构造. \(fail\)指针指向的地方,是匹配出现错误后 ...

  10. Ignatius and the Princess III HDU - 1028

    题目传送门:https://vjudge.net/problem/HDU-1028 思路:整数拆分构造母函数的模板题 1 //#include<bits/stdc++.h> 2 #incl ...