新聞中心
Go語言提供了很多文件操作的支持,在不同場景下,有對應(yīng)的處理方式,本節(jié)我們來介紹一下文本文件的讀寫操作。

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)曲江免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
寫純文本文件
由于Go語言的 fmt 包中打印函數(shù)強大而靈活,寫純文本數(shù)據(jù)非常簡單直接,示例代碼如下所示:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
//創(chuàng)建一個新文件,寫入內(nèi)容
filePath := "./output.txt"
file, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
fmt.Printf("打開文件錯誤= %v \n", err)
return
}
//及時關(guān)閉
defer file.Close()
//寫入內(nèi)容
str := "http://c.biancheng.net/golang/\n" // \n\r表示換行 txt文件要看到換行效果要用 \r\n
//寫入時,使用帶緩存的 *Writer
writer := bufio.NewWriter(file)
for i := 0; i < 3; i++ {
writer.WriteString(str)
}
//因為 writer 是帶緩存的,因此在調(diào)用 WriterString 方法時,內(nèi)容是先寫入緩存的
//所以要調(diào)用 flush方法,將緩存的數(shù)據(jù)真正寫入到文件中。
writer.Flush()
}運行上面代碼會在當(dāng)前目錄下生成一個 output.txt 文件,文件內(nèi)容如下:
http://c.biancheng.net/golang/
http://c.biancheng.net/golang/
http://c.biancheng.net/golang/
讀純文本文件
打開并讀取一個純文本格式的數(shù)據(jù)跟寫入純文本格式數(shù)據(jù)一樣簡單。要解析文本來重建原始數(shù)據(jù)可能稍微復(fù)雜,這需根據(jù)格式的復(fù)雜性而定。
示例代碼如下所示:
package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main() {
//打開文件
file, err := os.Open("./output.txt")
if err != nil {
fmt.Println("文件打開失敗 = ", err)
}
//及時關(guān)閉 file 句柄,否則會有內(nèi)存泄漏
defer file.Close()
//創(chuàng)建一個 *Reader , 是帶緩沖的
reader := bufio.NewReader(file)
for {
str, err := reader.ReadString('\n') //讀到一個換行就結(jié)束
if err == io.EOF { //io.EOF 表示文件的末尾
break
}
fmt.Print(str)
}
fmt.Println("文件讀取結(jié)束...")
}運行結(jié)果如下:
go run main.go
http://c.biancheng.net/golang/
http://c.biancheng.net/golang/
http://c.biancheng.net/golang/
文件讀取結(jié)束...
當(dāng)前名稱:創(chuàng)新互聯(lián)GO教程:Go語言純文本文件的讀寫操作
網(wǎng)站路徑:http://m.fisionsoft.com.cn/article/dpgdpgi.html


咨詢
建站咨詢
