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种:错 ...
随机推荐
- Spark集成
一.Spark 架构与优化器 1.Spark架构 (重点) 2.Spark优化器 二.Spark+SQL的API (重点) 1.DataSet简介 2.DataFrame简介 3.RDD与DF/DS的 ...
- SpringBoot2.1中添加过滤器配置
1:构造一个实现 Filter 接口的过滤器,并在类上添加@component注释: notice1:若不添加,则需在spring中注入该bean,不然会报错. package com.dev.fil ...
- OAuth2.0安全设计之Authorization Code
OAuth 2.0 有 4 种认证流程: 授权码模式(authorization code) 简化模式(implicit) 密码模式(resource owner password credentia ...
- Vue前端项目的搭建流程
1. 安装Vue和Nodejs 2. 创建项目 vue create eduonline-web
- MYSQL索引优化法则
目录 一首诗送给各位: 全值匹配我最爱,最左前缀要遵守: 带头大哥不能死,中间兄弟不能断: 索引列上少计算,范围之后全失效: Like百分写最右,覆盖索引不写星: 不等空值还有or,索引失效要少用: ...
- js一周时间表
<div class="datetext"> <img class="dateLeft" src="./images/dateLef ...
- Node更丝滑的打开方式
Node更丝滑的打开方式 1. 使用背景 最近前端的一个项目,使用gulp作为工程化.在运行过程中出现如下错误 gulp[3192]: src\node_contextify.cc:628: Asse ...
- C#连接Excel读取与写入数据库SQL ( 上 )
第一次写C#与sql的东西,主要任务是从Excel读取数据,再存到SQL server中. 先上读取Excel文件的code如下. public bool GetFiles(string equipN ...
- Golang+chromedp+goquery 简单爬取动态数据
目录 Golang+chromedp+goquery 简单爬取动态数据 Golang的安装 下载golang软件 解压golang 配置golang 重新导入配置 chromedp框架的使用 实际的代 ...
- 将samba共享目录映射为本地文件夹(百度网盘直接下载到samba共享目录下)
将samba共享目录映射为本地文件夹(百度网盘直接下载到samba共享目录下) 前面淘了一个蜗牛星际的矿机,打算拿来做个个人云盘,就装上了Linux用smb把硬盘共享出来 访问倒是很爽,就是发现下东西 ...