github.com/shenwei356/xopen

open files for buffered reading and writing in #golang


License
MIT
Install
go get github.com/shenwei356/xopen

Documentation

GoDoc Build Status Coverage Status

xopen

import "github.com/shenwei356/xopen"

xopen makes it easy to get buffered (possibly gzip-, xz-, or zstd- compressed) readers and writers. and close all of the associated files. Ropen opens a file for reading. Wopen opens a file for writing.

This packages is forked from https://github.com/brentp/xopen , but I have modified too much :(

Usage

Here's how to get a buffered reader:

// gzipped
rdr, err := xopen.Ropen("some.gz")
// xz compressed
rdr, err := xopen.Ropen("some.xz")
// zstd compressed
rdr, err := xopen.Ropen("some.zst")
// normal
rdr, err := xopen.Ropen("some.txt")
// stdin (possibly gzip-, xz-, or zstd-compressed)
rdr, err := xopen.Ropen("-")
// https://
rdr, err := xopen.Ropen("http://example.com/some-file.txt")
// Cmd
rdr, err := xopen.Ropen("| ls -lh somefile.gz")
// User directory:
rdr, err := xopen.Ropen("~/shenwei356/somefile")

checkError(err)
defer checkError(rdr.Close())

Writter

wtr, err := xopen.Wopen("some.gz")
defer checkError(wtr.Close())

outfh.Flush()