You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
package FileUtil
import (
"fmt"
"io"
"log"
"os"
"path/filepath"
)
/**
功能:读取文件内容
作者:黄海
时间: 2019-12-31
*/
func ReadFileContent ( filepath string ) string {
file , err := os . Open ( filepath )
if err != nil {
log . Print ( "文件打开失败:" , err )
}
defer file . Close ( )
buf := make ( [ ] byte , 12 ) // 存放文件内容的缓存,相当于中转站
data := make ( [ ] byte , 0 ) // 用来存放文件内容, buf读取的内容都会写到data里面去
for {
//无限循环,不断读取
n , err := file . Read ( buf )
// 什么时候文件读完呢? 如果文件读完的话, 那么err不为nil, 而是io.EOF
// 所以我们可以进行判断
if err != nil {
//如果err != nil说明出错了, 但如果还等于io.EOF的话, 说明读完了, 因为文件读完, err也不为nil。直接break
if err == io . EOF {
break
} else {
//如果错误不是io.EOF的话, 说明就真的在读取中出现了错误, 直接panic出来
//panic(err)
fmt . Println ( err . Error ( ) )
}
}
//此时文件内容写到buf里面去了, 写了多少个呢? 写了n个, 那么我们再写到data里面去
data = append ( data , buf [ : n ] ... )
}
return string ( data )
}
/**
功能:获取文件的大小
作者:黄海
时间: 2020-01-20
*/
func GetFileSize ( filename string ) int64 {
var result int64
filepath . Walk ( filename , func ( path string , f os . FileInfo , err error ) error {
result = f . Size ( )
return nil
} )
return result
}
/**
功能:将字符串内容写入到文本文件中
作者:黄海
时间: 2020-05-12
*/
func WriteContent ( filename string , content string ) {
dstFile , err := os . Create ( filename )
if err != nil {
fmt . Println ( err . Error ( ) )
return
}
defer dstFile . Close ( )
dstFile . WriteString ( content )
}
/**
功能:判断目录是不是存在
作者:黄海
时间: 2020-05-20
*/
func PathExists ( path string ) bool {
_ , err := os . Stat ( path )
if err == nil {
return true
}
if os . IsNotExist ( err ) {
return false
}
return false
}
/**
功能:拷贝文件
作者:黄海
时间: 2020-05-20
*/
func CopyFile ( srcFile , destFile string ) error {
file , err := os . Open ( srcFile )
if err != nil {
return err
}
defer file . Close ( )
dest , err := os . Create ( destFile )
if err != nil {
return err
}
defer dest . Close ( )
io . Copy ( dest , file )
return nil
}