<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                import "archive/tar" tar包實現了tar格式壓縮文件的存取。本包目標是覆蓋大多數tar的變種,包括GNU和BSD生成的tar文件。 tar.gz 文件寫入: ~~~ func NewWriter(w io.Writer) *Writer // NewWriter創建一個寫入w的*Writer。 func FileInfoHeader(fi os.FileInfo, link string) (*Header, error) /* FileInfoHeader返回一個根據fi填寫了部分字段的Header。 如果fi描述一個符號鏈接,FileInfoHeader函數將link參數作為鏈接目標。 如果fi描述一個目錄,會在名字后面添加斜杠。 因為os.FileInfo接口的Name方法只返回它描述的文件的無路徑名,有可能需要將返回值的Name字段修改為文件的完整路徑名。 */ func (tw *Writer) WriteHeader(hdr *Header) error /* WriteHeader寫入hdr并準備接受文件內容。如果不是第一次調用本方法,會調用Flush。 在Close之后調用本方法會返回ErrWriteAfterClose。 */ func (tw *Writer) Write(b []byte) (n int, err error) /* Write向tar檔案文件的當前記錄中寫入數據。 如果寫入的數據總數超出上一次調用WriteHeader的參數hdr.Size字節,返回ErrWriteTooLong錯誤。 */ func (tw *Writer) Flush() error // Flush結束當前文件的寫入。(可選的) func (tw *Writer) Close() error // Close關閉tar檔案文件,會將緩沖中未寫入下層的io.Writer接口的數據刷新到下層。 ~~~ 代碼實現: ~~~ package main import ( "archive/tar" "fmt" "os" ) func main() { fileName := "./file.tar.gz" insertByte := []byte("this is test tar weite.") file, err := os.OpenFile(fileName, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0666) if err != nil { fmt.Printf("open file ./file.tar.gz err : %v\n", err) } if file != nil { defer func(file *os.File) { file.Close() }(file) } write := tar.NewWriter(file) fileInfo, err := os.Stat(fileName) if err != nil { fmt.Printf("os stat err : %v\n", err) } hdr, err := tar.FileInfoHeader(fileInfo, "") if err != nil { fmt.Printf("tar FileInfoHeader err : %v\n", err) } else { fmt.Printf("hdr.Size is %v \n", hdr.Size) hdr.Size = int64(len(insertByte)) } err = write.WriteHeader(hdr) if err != nil { fmt.Printf("write WriteHeader err : %v\n", err) } ret, err := write.Write(insertByte) if err != nil { fmt.Printf("write ./file.tar.gz err : %v\n", err) } else { fmt.Printf("write ./file.tar.gz success . return number is %d \n", ret) } err = write.Flush() if err != nil { fmt.Printf("write flush err : %v\n", err) } err = write.Close() if err != nil { fmt.Printf("write close err : %v\n", err) } } ~~~ tar.gz 文件讀取: ~~~ func NewReader(r io.Reader) *Reader // NewReader創建一個從r讀取的Reader。 func (tr *Reader) Next() (*Header, error) // 轉入tar檔案文件下一記錄,它會返回下一記錄的頭域。 func (tr *Reader) Read(b []byte) (n int, err error) // 從檔案文件的當前記錄讀取數據,到達記錄末端時返回(0, EOF),直到調用Next方法轉入下一記錄。 ~~~ 代碼實現: ~~~ package main import ( "archive/tar" "fmt" "os" ) func main() { fileName := "./file.tar.gz" file, err := os.Open(fileName) if err != nil { fmt.Printf("open file ./file.tar.gz err : %v\n", err) } if file != nil { defer func(file *os.File) { file.Close() }(file) } read := tar.NewReader(file) hdr, err := read.Next() var getByte = make([]byte, hdr.Size) _, err = read.Read(getByte) if err != nil { fmt.Printf("read err : %v\n", err) } fmt.Println(string(getByte)) } ~~~ import "compress/flate" flate包實現了deflate壓縮數據格式。gzip包和zlib包實現了對基于deflate的文件格式的訪問。 import "compress/gzip" gzip包實現了gzip格式壓縮文件的讀寫 import "compress/zlib" zlib包實現了對zlib格式壓縮數據的讀寫
                  <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>

                              哎呀哎呀视频在线观看