1、文件創(chuàng)建 os.Create
func createFile() {
//文件名
//返回值是文件指針 錯誤信息
//如果文件不存在 會創(chuàng)建新 存在 則清空源文件內(nèi)容
// \:轉(zhuǎn)義字符 G:/file=G:\\file
fp, err := os.Create("G:/file/dawn.txt")
if err != nil {
//1框产、路徑不存在
// 2凄杯、文件權(quán)限
// 3、程序打開文件上限 65535
fmt.Println("文件創(chuàng)建失敗")
return
}
//文件關(guān)閉
//如果打開文件不關(guān)閉秉宿,造成內(nèi)存浪費 文件打開上限
defer fp.Close()
}
2戒突、寫入
- 1、字符串
fp.WriteString("hello \r\nworld")
- 2膊存、字符切片
slice := []byte{'h', 'e'}
slice2 := []byte("fass")
fp.Write(slice)
fp.Write(slice2)
3、獲取光標(biāo)位置
//獲取文件起始到結(jié)尾有多少字符
count, _ := fp.Seek(0, io.SeekEnd)
fp.WriteAt(slice, count)
打開方式: O_RDONLY, O_WRONLY, O_RDWR, O_APPEND
打開權(quán)限: 6隔崎、rw讀寫, 7韵丑、rwx讀寫執(zhí)行
os.OpenFile("G:/file/dawn.txt",os.O_RDWR,6)
file, err := os.Open("G:/file/dawn.txt")//只讀
3、讀取
- 1撵彻、塊讀取
//塊讀取
buf := make([]byte, 4)
for {
n, err := file.Read(buf)
if err == io.EOF {
break
}
fmt.Print(string(buf[:n]))
}
- 2、行讀取
//創(chuàng)建文件緩沖區(qū)
reader := bufio.NewReader(file)
b, _ := reader.ReadBytes('\n')
fmt.Println(string(b))