<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                cat ./file.txt ~~~ 吊半坡并給擅入都市的農民 我 徑直走入 潮濕的泥土 堆起小小的農民 ————對糧食的嘴 停留在西安 多少都城的外圍 多少次擅入都市 象水 血和酒 ————這些農夫的車輛 運送著河流、生命和欲望 而俘虜回鄉 盲目的語言只有血和命 自由的血也有死亡的血 智慧的血也有罪惡的血 父親是死在西安的血 父親是糧食 和丑陋的釀造者 一對糧食的嘴 唱歌的嘴 食鹽的嘴 填充河岸的嘴 朝著無窮的半坡 粘土守著粘土之上小小的陶器作坊 一條膚淺而粗暴的 溝外站著文明 甕內的白骨飛走了那些美麗少女 半坡啊————再說——-受孕也不是我一個人的果實 ~~~ os包 :按byte讀取 ~~~ func (f *File) Read(b []byte) (n int, err error) /* Read方法從f中讀取最多len(b)字節數據并寫入b。它返回讀取的字節數和可能遇到的任何錯誤。 文件終止標志是讀取0個字節且返回值err為io.EOF。 */ func (f *File) ReadAt(b []byte, off int64) (n int, err error) /* ReadAt從指定的位置(相對于文件開始位置)讀取len(b)字節數據并寫入b。 它返回讀取的字節數和可能遇到的任何錯誤。 當n<len(b)時,本方法總是會返回錯誤;如果是因為到達文件結尾,返回值err會是io.EOF。 */ ~~~ 代碼實現: ~~~ package main import ( "fmt" "os" ) func main() { file, err := os.Open("./file.txt") if err != nil { fmt.Printf("open ./file.txt err : %v\n", err) } if file != nil { defer func(file *os.File) { file.Close() }(file) } var b1 = make([]byte, 102) space1, err := file.Read(b1) if err != nil { fmt.Printf("file read err : %v\n", err) } fmt.Printf("file read success , 讀取 %d 字節。\n", space1) fmt.Printf("讀取內容:\n%s\n", string(b1)) b2 := make([]byte, 205) space2, err := file.ReadAt(b2, int64(space1)) if err != nil { fmt.Printf("file readat err : %v\n", err) } fmt.Printf("file readat success , 讀取 %d 字節。\n", space2) fmt.Printf("讀取內容:\n%s\n", string(b2)) } ~~~ 運行結果: ~~~ file read success , 讀取 102 字節。 讀取內容: 吊半坡并給擅入都市的農民 我 徑直走入 潮濕的泥土 堆起小小的農民 ——— file readat success , 讀取 205 字節。 讀取內容: —對糧食的嘴 停留在西安 多少都城的外圍 多少次擅入都市 象水 血和酒 ————這些農夫的車輛 運送著河流、生命和欲望 而俘虜回鄉 盲目的語言只有血 ~~~ 緩沖讀取 bufio包實現了有緩沖的I/O。它包裝一個io.Reader或io.Writer接口對象,創建另一個也實現了該接口,且同時還提供了緩沖和一些文本I/O的幫助函數的對象。 ~~~ func NewReader(rd io.Reader) *Reader // NewReader創建一個具有默認大小緩沖、從r讀取的*Reader。 func (b *Reader) Read(p []byte) (n int, err error) /* Read讀取數據寫入p。本方法返回寫入p的字節數。 本方法一次調用最多會調用下層Reader接口一次Read方法,因此返回值n可能小于len(p)。 讀取到達結尾時,返回值n將為0而err將為io.EOF。 */ func (b *Reader) ReadLine() (line []byte, isPrefix bool, err error) /* ReadLine是一個低水平的行數據讀取原語。 大多數調用者應使用ReadBytes('\n')或ReadString('\n')代替,或者使用Scanner。 ReadLine嘗試返回一行數據,不包括行尾標志的字節。 如果行太長超過了緩沖,返回值isPrefix會被設為true,并返回行的前面一部分。 該行剩下的部分將在之后的調用中返回。返回值isPrefix會在返回該行最后一個片段時才設為false。 返回切片是緩沖的子切片,只在下一次讀取操作之前有效。 ReadLine要么返回一個非nil的line,要么返回一個非nil的err,兩個返回值至少一個非nil。 返回的文本不包含行尾的標志字節("\r\n"或"\n")。 如果輸入流結束時沒有行尾標志字節,方法不會出錯,也不會指出這一情況。 在調用ReadLine之后調用UnreadByte會總是吐出最后一個讀取的字節(很可能是該行的行尾標志字節), 即使該字節不是ReadLine返回值的一部分。 */ func (b *Reader) ReadSlice(delim byte) (line []byte, err error) /* ReadSlice讀取直到第一次遇到delim字節,返回緩沖里的包含已讀取的數據和delim字節的切片。 該返回值只在下一次讀取操作之前合法。 如果ReadSlice放在在讀取到delim之前遇到了錯誤,它會返回在錯誤之前讀取的數據在緩沖中的切片以及該錯誤(一般是io.EOF)。 如果在讀取到delim之前緩沖就被寫滿了,ReadSlice失敗并返回ErrBufferFull。 因為ReadSlice的返回值會被下一次I/O操作重寫,調用者應盡量使用ReadBytes或ReadString替代本法功法。 當且僅當ReadBytes方法返回的切片不以delim結尾時,會返回一個非nil的錯誤。 */ func (b *Reader) ReadBytes(delim byte) (line []byte, err error) /* ReadBytes讀取直到第一次遇到delim字節,返回一個包含已讀取的數據和delim字節的切片。 如果ReadBytes方法在讀取到delim之前遇到了錯誤,它會返回在錯誤之前讀取的數據以及該錯誤(一般是io.EOF)。 當且僅當ReadBytes方法返回的切片不以delim結尾時,會返回一個非nil的錯誤。 */ func (b *Reader) ReadString(delim byte) (line string, err error) /* ReadString讀取直到第一次遇到delim字節,返回一個包含已讀取的數據和delim字節的字符串。 如果ReadString方法在讀取到delim之前遇到了錯誤,它會返回在錯誤之前讀取的數據以及該錯誤(一般是io.EOF)。 當且僅當ReadString方法返回的切片不以delim結尾時,會返回一個非nil的錯誤。 */ ~~~ 代碼實現: ~~~ package main import ( "bufio" "fmt" "io" "os" ) func main() { file, err := os.Open("./file.txt") if err != nil { fmt.Printf("os open ./file.txt err : %v\n", err) } if file != nil { defer func(file *os.File) { file.Close() }(file) } read1 := bufio.NewReader(file) var b1 = make([]byte, 102) readByte1, err := read1.Read(b1) if err != nil { fmt.Printf("read err : %v\n", err) } fmt.Printf("read success , 讀取 %d 字節\n讀取的內容:\n%s\n", readByte1, string(b1)) var line []byte for { data, prefix, err := read1.ReadLine() if err == io.EOF { // fmt.Println(err) break } line = append(line, data...) if !prefix { // fmt.Printf("data:%s\n", string(line)) } } fmt.Println(string(line)) } ~~~ 運行結果: ~~~ read success , 讀取 102 字節 讀取的內容: 吊半坡并給擅入都市的農民 我 徑直走入 潮濕的泥土 堆起小小的農民 ——— —對糧食的嘴停留在西安 多少都城的外圍多少次擅入都市象水 血和酒————這些農夫的車輛運送著河流、生命和欲望而俘虜回鄉 盲目的語言只有血和命自由的血也有死亡的血智慧的血也有罪惡的血父親是死在西安的血父親是糧食和丑陋的釀造者一對糧食的嘴唱歌的嘴 食鹽的嘴 填充河岸的嘴朝著無窮的半坡粘土守著粘土之上小小的陶器作坊一條膚淺而粗暴的溝外站著文明甕內的白骨飛走了那些美麗少女半坡啊————再說——-受孕也不是我一個人的果實實在需要死亡的配合 ~~~ 讀取整個文件: "io/ioutil" 包實現了讀取整個文件功能 ~~~ func ReadAll(r io.Reader) ([]byte, error) /* ReadAll從r讀取數據直到EOF或遇到error,返回讀取的數據和遇到的錯誤。成功的調用返回的err為nil而非EOF。 因為本函數定義為讀取r直到EOF,它不會將讀取返回的EOF視為應報告的錯誤。 */ func ReadFile(filename string) ([]byte, error) /* ReadFile 從filename指定的文件中讀取數據并返回文件的內容。成功的調用返回的err為nil而非EOF。 因為本函數定義為讀取整個文件,它不會將讀取返回的EOF視為應報告的錯誤。 */ ~~~ 代碼實現: ~~~ package main import ( "fmt" "io/ioutil" "os" ) func main() { file, err := os.Open("./file.txt") if err != nil { fmt.Printf("open ./file.txt err : %v\n", err) } if file != nil { defer func(file *os.File) { file.Close() }(file) } data1, err := ioutil.ReadAll(file) if err != nil { fmt.Printf("ioutil read all err : %v\n", err) } fmt.Printf("ioutil read all success.\n內容:\n%s\n", string(data1)) data2, err := ioutil.ReadFile("./file.txt") if err != nil { fmt.Printf("ioutil read file err : %v\n", err) } fmt.Printf("ioutil read file success.\n內容:\n%s\n", string(data2)) } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看