這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
讀取檔案中的內容
假設你想擷取檔案中感興趣的內容,但是,你不希望擷取所有內容。假設檔案的內容如下所示:
1. 網頁視覺設計理論之少些質感,多些版式.http://www.ynetx.com/theory/560-1.html2. 設計理論:http://www.ynetx.com/design/theory/3.Google的新設計理念Material Designhttp://www.infoq.com/cn/news/2014/07/google-material-design-android/
你只想擷取http開頭的行內容。實現代碼如下:
line, err := reader.ReadString('\n') // skip all line starting without line 'http' // if equal := strings.Index(line, "http"); equal < 0 { // fmt.Print(line) // } //alternatively, only print line starting with 'http' if equal := strings.Index(line, "http"); equal >= 0 { fmt.Print(line) }
完整代碼如下所示:
package mainimport ( "bufio" "bytes" "fmt" "io" "os" "strings" "unicode")func ReadFile(filePath string) { file, err := os.Open(filePath) if err != nil { fmt.Println(err) return } defer file.Close() reader := bufio.NewReader(file) for { line, err := reader.ReadString('\n') // skip all line starting without line 'http' // if equal := strings.Index(line, "http"); equal < 0 { // fmt.Print(line) // } //alternatively, only print line starting with 'http' if equal := strings.Index(line, "http"); equal >= 0 { fmt.Print(line) } if err == io.EOF { break } if err != nil { fmt.Println(err) } }}func main(){ //檔案路徑../util/art.txt ReadFile("../util/art.txt")}
輸出結果:
http://www.ynetx.com/theory/560-1.htmlhttp://www.ynetx.com/design/theory/http://www.infoq.com/cn/news/2014/07/google-material-design-android/
歡迎加入我的公眾號