Go-25-文件管理
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-文件管理的更多相关文章
- python学习笔记25(文件管理 os包)
os包我们经常会与文件和目录打交道,对于这些操作python提供了一个os模块,里面包含了很多操作文件和目录的函数.如果你对linux基本操作了解的话,下面的一些os方法应该会很熟悉的,因为基本和li ...
- java springMVC SSM 操作日志 4级别联动 文件管理 头像编辑 shiro redis
A 调用摄像头拍照,自定义裁剪编辑头像 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单; 技术:313596790freemaker模版技术 ,0个代码不用写 ...
- Python-day3作业-haproxy配置文件管理脚本
#!/usr/bin/env python import os,sys,time,re,prettytable,json from collections import defaultdict,Ord ...
- oracle密码文件管理
密码文件 密码文件作用: 密码文件用于dba用户的登录认证. dba用户:具备sysdba和sysoper权限的用户,即oracle的sys和system用户. 本地登录: 1)操作系统认证: [or ...
- atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 。打开浏览服务器文件夹java .net php
atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 .打开浏览服务器文件夹java .net php 1. 环境:::项目java web,需要打开浏览服 ...
- 盘点Windows 8.1中隐藏着的25个秘密功能
Windows 8.1正式版问世,带来了众多大家早已耳熟能详的“开始按钮”.“分屏显示”等功能.事实上,Windows 8.1贴心的设计细节有很多,多数细节隐藏于系统中某个不起眼的角落,科技网站PC ...
- Oracle体系结构之oracle密码文件管理
密码文件 密码文件作用: 密码文件用于dba用户的登录认证. dba用户:具备sysdba和sysoper权限的用户,即oracle的sys和system用户. 本地登录: 1)操作系统认证: [or ...
- Oracle管理监控 之 rac环境密码文件管理
密码文件作用: 密码文件用于dba用户的登录认证. dba用户:具备sysdba和sysoper权限的用户,即oracle的sys和system用户. RAC环境中多个节点的密码文件应该保证一致,否则 ...
- 第25章 串行FLASH文件系统FatFs
25.1 文件系统 即使读者可能不了解文件系统,读者也一定对“文件”这个概念十分熟悉.数据在PC上是以文件的形式储存在磁盘中的,这些数据的形式一般为ASCII码或二进制形式.在上一章我们已经写好了Q ...
- 【第六章】MySQL日志文件管理
1.日志文件管理概述: 配置文件:/etc/my.cnf 作用:MySQL日志文件是用来记录MySQL数据库客户端连接情况.SQL语句的执行情况以及错误信息告示. 分类:MySQL日志文件分为4种:错 ...
随机推荐
- 【Python】set 与 list ——如何对列表进行去重?
在Python中,形如 {1,2,3,4,5} 这样的数据类型叫做"集合",外形酷似列表list [1,2,3,4,5] 但是集合与列表有很多区别,具体表现在以下几方面: List ...
- SpringBoot源码解析
1.@SpringBootApplication springboot采用注解方式开发的,当创建了一个springboot项目时,在启动类上会有一个注解@SpringBootApplication,这 ...
- COM技术中的VARIANT and VARIANTARG
VARIANT and VARIANTARG Use VARIANTARG to describe arguments passed within DISPPARAMS, and VARIANT to ...
- Kubernetes-3.安装
docker version:19.03.14 kubernetes version:1.19.4 本文介绍使用kubeadm安装Kubernetes集群的简单过程. 目录 使用kubeadm安装k8 ...
- 身份认证:JSON Web Token
JSON Web Token(JWT)是一种基于JSON的开放标准((RFC 7519),也是目前最流行的跨域认证解决方案. 传统的 cookie 认证方式看起来遵守了 REST 架构的无状态要求,但 ...
- 剑指 Offer 62. 圆圈中最后剩下的数字 + 约瑟夫环问题
剑指 Offer 62. 圆圈中最后剩下的数字 Offer_62 题目描述 方法一:使用链表模拟 这种方法是暴力方法,时间复杂度为O(nm),在本题中数据量过大会超时. 方法二:递归方法 packag ...
- HashMap之tableSizeFor方法图解
目录 普通人的简单粗暴方式 示例代码 问题 大神的实现 移位的思想 全过程示意图 初始值 右移一位+或运算 右移二位+或运算 右移四位+或运算 右移八位+或运算 右移十六位+或运算 结果+1 初始容量 ...
- Ubuntu小配置
Ubuntu 拍摄快照 在虚拟机安装好.配置号后各拍摄一次快照,并存储. 可在虚拟机出错后回滚 Root用户 Ubuntu默认不能以 Root用户身份直接登录 因此,正常操作时在需要调用 root权限 ...
- C#中的字段与属性的区别及属性的作用
C#中的字段与属性的区别及属性的作用 先上代码 public class Employee { //字段 private string name; //属性 public string Name { ...
- CSV 注入实战
oxo1 前言 之前看到过 CSV 注入的文章,具体想了解的请搜索学习,这里不多作介绍.今天刚好碰到了导出功能,就随手测试一波,没想到还真的存在 CSV 注入漏洞. oxo2 经过 1.测试漏洞 看到 ...