123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- // Copyright 2016 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- package gzip_test
- import (
- "bytes"
- "compress/gzip"
- "fmt"
- "io"
- "log"
- "os"
- "time"
- )
- func Example_writerReader() {
- var buf bytes.Buffer
- zw := gzip.NewWriter(&buf)
- // Setting the Header fields is optional.
- zw.Name = "a-new-hope.txt"
- zw.Comment = "an epic space opera by George Lucas"
- zw.ModTime = time.Date(1977, time.May, 25, 0, 0, 0, 0, time.UTC)
- _, err := zw.Write([]byte("A long time ago in a galaxy far, far away..."))
- if err != nil {
- log.Fatal(err)
- }
- if err := zw.Close(); err != nil {
- log.Fatal(err)
- }
- zr, err := gzip.NewReader(&buf)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Printf("Name: %s\nComment: %s\nModTime: %s\n\n", zr.Name, zr.Comment, zr.ModTime.UTC())
- if _, err := io.Copy(os.Stdout, zr); err != nil {
- log.Fatal(err)
- }
- if err := zr.Close(); err != nil {
- log.Fatal(err)
- }
- // Output:
- // Name: a-new-hope.txt
- // Comment: an epic space opera by George Lucas
- // ModTime: 1977-05-25 00:00:00 +0000 UTC
- //
- // A long time ago in a galaxy far, far away...
- }
- func ExampleReader_Multistream() {
- var buf bytes.Buffer
- zw := gzip.NewWriter(&buf)
- var files = []struct {
- name string
- comment string
- modTime time.Time
- data string
- }{
- {"file-1.txt", "file-header-1", time.Date(2006, time.February, 1, 3, 4, 5, 0, time.UTC), "Hello Gophers - 1"},
- {"file-2.txt", "file-header-2", time.Date(2007, time.March, 2, 4, 5, 6, 1, time.UTC), "Hello Gophers - 2"},
- }
- for _, file := range files {
- zw.Name = file.name
- zw.Comment = file.comment
- zw.ModTime = file.modTime
- if _, err := zw.Write([]byte(file.data)); err != nil {
- log.Fatal(err)
- }
- if err := zw.Close(); err != nil {
- log.Fatal(err)
- }
- zw.Reset(&buf)
- }
- zr, err := gzip.NewReader(&buf)
- if err != nil {
- log.Fatal(err)
- }
- for {
- zr.Multistream(false)
- fmt.Printf("Name: %s\nComment: %s\nModTime: %s\n\n", zr.Name, zr.Comment, zr.ModTime.UTC())
- if _, err := io.Copy(os.Stdout, zr); err != nil {
- log.Fatal(err)
- }
- fmt.Print("\n\n")
- err = zr.Reset(&buf)
- if err == io.EOF {
- break
- }
- if err != nil {
- log.Fatal(err)
- }
- }
- if err := zr.Close(); err != nil {
- log.Fatal(err)
- }
- // Output:
- // Name: file-1.txt
- // Comment: file-header-1
- // ModTime: 2006-02-01 03:04:05 +0000 UTC
- //
- // Hello Gophers - 1
- //
- // Name: file-2.txt
- // Comment: file-header-2
- // ModTime: 2007-03-02 04:05:06 +0000 UTC
- //
- // Hello Gophers - 2
- }
|