12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- // Copyright 2012 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 zip_test
- import (
- "bytes"
- "fmt"
- "io"
- "log"
- "os"
- "github.com/klauspost/compress/flate"
- "github.com/klauspost/compress/zip"
- )
- func ExampleWriter() {
- // Create a buffer to write our archive to.
- buf := new(bytes.Buffer)
- // Create a new zip archive.
- w := zip.NewWriter(buf)
- // Add some files to the archive.
- var files = []struct {
- Name, Body string
- }{
- {"readme.txt", "This archive contains some text files."},
- {"gopher.txt", "Gopher names:\nGeorge\nGeoffrey\nGonzo"},
- {"todo.txt", "Get animal handling licence.\nWrite more examples."},
- }
- for _, file := range files {
- f, err := w.Create(file.Name)
- if err != nil {
- log.Fatal(err)
- }
- _, err = f.Write([]byte(file.Body))
- if err != nil {
- log.Fatal(err)
- }
- }
- // Make sure to check the error on Close.
- err := w.Close()
- if err != nil {
- log.Fatal(err)
- }
- }
- func ExampleReader() {
- // Open a zip archive for reading.
- r, err := zip.OpenReader("testdata/readme.zip")
- if err != nil {
- log.Fatal(err)
- }
- defer r.Close()
- // Iterate through the files in the archive,
- // printing some of their contents.
- for _, f := range r.File {
- fmt.Printf("Contents of %s:\n", f.Name)
- rc, err := f.Open()
- if err != nil {
- log.Fatal(err)
- }
- _, err = io.CopyN(os.Stdout, rc, 68)
- if err != nil {
- log.Fatal(err)
- }
- rc.Close()
- fmt.Println()
- }
- // Output:
- // Contents of README:
- // This is the source code repository for the Go programming language.
- }
- func ExampleWriter_RegisterCompressor() {
- // Override the default Deflate compressor with a higher compression level.
- // Create a buffer to write our archive to.
- buf := new(bytes.Buffer)
- // Create a new zip archive.
- w := zip.NewWriter(buf)
- // Register a custom Deflate compressor.
- w.RegisterCompressor(zip.Deflate, func(out io.Writer) (io.WriteCloser, error) {
- return flate.NewWriter(out, flate.BestCompression)
- })
- // Proceed to add files to w.
- }
|