golang 建立、讀取、寫入檔案
一、golang建立文字檔案
f,err := os.Create( fileName )
defer f.Close()
if err !=nil {
fmt.Println( err.Error() )
} else {
_,err=f.Write([]byte("要寫入的文字內容"))
fmt.Println( err.Error() )
}
二、golang讀取文字檔案
f, err := os.OpenFile(fileName, os.O_RDONLY,0600)
defer f.Close()
if err !=nil {
fmt.Println(err.Error())
} else {
contentByte,err=ioutil.ReadAll(f)
fmt.Println( string(contentByte), err.Error() )
}
OpenFile用法:os.OpenFile(檔名,開啟方式,開啟模式)
//開啟方式
const (
//只讀模式
O_RDONLY int = syscall.O_RDONLY // open the file read-only.
//只寫模式
O_WRONLY int = syscall.O_WRONLY // open the file write-only.
//可讀可寫
O_RDWR int = syscall.O_RDWR // open the file read-write.
//追加內容
O_APPEND int = syscall.O_APPEND // append data to the file when writing.
//建立檔案,如果檔案不存在
O_CREATE int = syscall.O_CREAT // create a new file if none exists.
//與建立檔案一同使用,檔案必須存在
O_EXCL int = syscall.O_EXCL // used with O_CREATE, file must not exist
//開啟一個同步的檔案流
O_SYNC int = syscall.O_SYNC // open for synchronous I/O.
//如果可能,開啟時縮短檔案
O_TRUNC int = syscall.O_TRUNC // if possible, truncate file when opened.
)
//開啟模式
const (
ModeDir FileMode = 1 << (32 - 1 - iota) // d: is a directory 資料夾模式
ModeAppend // a: append-only 追加模式
ModeExclusive // l: exclusive use 單獨使用
ModeTemporary // T: temporary file (not backed up) 臨時檔案
ModeSymlink // L: symbolic link 象徵性的關聯
ModeDevice // D: device file 裝置檔案
ModeNamedPipe // p: named pipe (FIFO) 命名管道
ModeSocket // S: Unix domain socket Unix 主機 socket
ModeSetuid // u: setuid 設定uid
ModeSetgid // g: setgid 設定gid
ModeCharDevice // c: Unix character device, when ModeDevice is set Unix 字元裝置,當裝置模式是設定Unix
ModeSticky // t: sticky 粘性的
// Mask for the type bits. For regular files, none will be set. bit位遮蓋.不變的檔案設定為none
ModeType = ModeDir | ModeSymlink | ModeNamedPipe | ModeSocket | ModeDevice
ModePerm FileMode = 0777 // Unix permission bits 許可權位.
)
三、golang寫入文字檔案
f, err := os.OpenFile(fileName, os.O_WRONLY|os.O_TRUNC, 0600)
defer f.Close()
if err != nil {
fmt.Println( err.Error() )
} else {
_,err=f.Write([]byte("要寫入的文字內容"))
fmt.Println( err.Error() )
&