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. iOS写在定制相机之前

    问题 不是所有的拍照UIImagePickerController都能搞定,理由如下: 1.产品不整点幺蛾子,哪来体验创新 2.设计不整点幺蛾子,怎能体现用心 3.运营:这体验跟某宝某信咋不一样??? ...

  2. wxWidgets源码分析(5) - 窗口管理

    窗口管理 所有的窗口均继承自wxTopLevelWindows: WXDLLIMPEXP_DATA_CORE(wxWindowList) wxTopLevelWindows; wxTopLevelWi ...

  3. uniapp封装uni.request请求

    封装一个uniapp请求 新建一个http.js文件封装uni.request const BASE_URL = process.env.NODE_ENV === 'development' ? '' ...

  4. 身份认证:JSON Web Token

    JSON Web Token(JWT)是一种基于JSON的开放标准((RFC 7519),也是目前最流行的跨域认证解决方案. 传统的 cookie 认证方式看起来遵守了 REST 架构的无状态要求,但 ...

  5. POJ-2406(KMP+字符串压缩)

    Power String POJ-2406 字符串压缩模板题,但是是求有多少个这样最短的子串可以组成s. #include<iostream> #include<cstring> ...

  6. CCF(JSON查询:40分):字符串+模拟

    JSON查询 201709-3 纯字符串模拟,考的就是耐心和细心.可惜这两样我都缺... #include<iostream> #include<cstdio> #includ ...

  7. sprintgboot+springsecurity的跨域问题,

    整个项目是使用前后端分离的形式开发,登录接口部分出现了问题, 重写了security的登录接口,返回json数据 到这一步已经没有没有问题了,使用postman测试,也可以看到接口返回的结果,但是使用 ...

  8. 新的颜色对比度算法-感知对比度算法APCA

    目录 对比度 在控制台查看 插件或网站 感知对比度算法(APCA) APCA Math 原理 js 实现的 SAPC 最后 灵感的源泉来源于不断的接受新鲜事物. Chrome 89 新功能一览,性能提 ...

  9. JAVA面试题:输出100以内所有的素数

    转载:https://www.cnblogs.com/onway/archive/2012/11/15/2771912.html Java输出1-100中所有的素数 很多人笔试时都会遇到这个问题,小农 ...

  10. 云原生的弹性 AI 训练系列之一:基于 AllReduce 的弹性分布式训练实践

    引言 随着模型规模和数据量的不断增大,分布式训练已经成为了工业界主流的 AI 模型训练方式.基于 Kubernetes 的 Kubeflow 项目,能够很好地承载分布式训练的工作负载,业已成为了云原生 ...