01、golang開啟檔案讀出一塊檔案資料,但是資料讀不全
--讀取思路:
--開啟檔案獲取操作控制代碼
--讀入一段資料列印
--defer 開啟檔案控制代碼之後,立即定義關閉函式
--不論是 os.open() 還是 file.read 函式。返回的都有err,需要對err判斷是否被開啟 對err判斷是否讀取完畢
--func open(name string) (file *file, err error)
--open開啟乙個檔案用於開啟。返回物件為:
--file:檔案操作符,用於後續操作檔案
--err: 用於判斷
--**示例如下:
func main()
defer file.close() // 定義檔案關閉,以免忘記
// 通過控制代碼開啟檔案
var tmp = make(byte, 128)
n, err01 := file.read(tmp)
if err01 == io.eof
if err01 != nil
fmt.printf("讀取了%d位元組的資料\n", n)
fmt.println(string(tmp[:n]))
}
02、golang開啟檔案迴圈讀取:這是一次讀取一塊資料,全部檔案資料
func main()
defer file.close() // 定義檔案關閉,以免忘記
// 通過控制代碼開啟檔案
var content byte
var tmp = make(byte, 128)
forif err != nil
} fmt.println(string(content))
}
03、bufio讀取檔案 -- 逐行讀取
func main()
defer file.close() // 定義檔案關閉,以免忘記
// 開啟檔案
reader := bufio.newreader(file) // 獲取檔案位址
forfmt.println("檔案讀取完畢")
break
} if err != nil
fmt.println(line)
}}
04、ioutil -- 讀取整個檔案,只需要傳入檔案位址即可
// 開啟檔案讀入通道
content, err := ioutil.readfile("test.txt")
if err!=nil
fmt.println(string(content))
05、檔案寫入 --os.openfile()
函式
--os.openfile()函式能夠以指定模式開啟檔案,從而實現檔案寫入相關功能。
func openfile(name string, flag int, perm filemode) (*file, error)
--name:要開啟的檔名
--flag:開啟檔案的模式
--perm:檔案許可權,乙個八進位制數。r(讀)04,w(寫)02,x(執行)01。在linux中就是檔案許可權,例如777。這個引數對於windows系統沒有意義
--模式有以下幾種:
模式 含義 -- 對應常數
os.o_wronly -- 只寫 -- 0x00001
os.o_create -- 建立檔案 -- 0x00040
os.o_rdonly -- 唯讀 -- 0x00000
os.o_rdwr -- 讀寫 -- 0x00002
os.o_trunc -- 清空 -- 0x00200
--在go語言中標誌位型別為int,通過標誌位之間的 | 操作,並按照二進位制位上的1來判斷有哪些模式被啟用
--如果檔案不存在且要寫入時,會報錯如下:
open file failed open write_in.txt: the system cannot find the file specified.
--write和writestring
--write:按照位元組寫入
--writestring:按照字串寫入
--**示例:
func main()
defer fileobj.close() // 關閉檔案
// write
fileobj.write(byte("不慚於景\n"))
// writestring
fileobj.writestring("慎其獨也")
}
--bufio.newwriter
--逐行讀入
--**示例:
func main()
defer fileobj.close() // 關閉檔案
writer := bufio.newwriter(fileobj)
for i := 0; i < 1000; i++
writer.flush() //將快取中的內容寫入檔案
}
--ioutil.writefile
--更加高階的寫入函式
--**示例如下:
str := "hello 沙河"
err := ioutil.writefile("./xx.txt", byte(str), 0666)
if err != nil
1 3Go語言環境
為了便於 學習與分享,建議各位大佬可以前往 github 免費註冊乙個賬戶,在此有很多優秀的go專案,可以較快的提高自己的開發能力。成功註冊github賬戶後,可以象下面這樣建立用於儲存 源 的資料夾 github賬戶名 macos或linux mkdir gopath src github.com...
Go 讀取和寫入xml檔案示例
在學習go語言中,有關於go處理xml檔案的處理.在這裡記錄一下 在go語言中使用ioutil庫進行檔案的處理是特別方便的事情,這裡使用goland進行開發的示例 首先建立工程xml 如下圖所示 在main.go中對a.xml 的內容進行讀取 a.xml 的內容如下 zh 深圳寶安 yq 深圳福田 ...
13 go語言 開始專案實戰
1 爬蟲專案介紹 網路爬蟲分類 通用爬蟲,如baidu,google 聚焦爬蟲,從網際網路獲取結構化資料 go語言的爬蟲庫 框架 henrylee2cn pholcus gocrawl colly hu17889 go spider 將不使用現成的爬蟲庫 框架 使用elasticsearch作為資料...