gzcon {base} | R Documentation

## (De)compress I/O Through Connections

### Description

`gzcon` provides a modified connection that wraps an existing connection, and decompresses reads or compresses writes through that connection. Standard `gzip` headers are assumed.

### Usage

    gzcon(con, level = 6, allowNonCompressed = TRUE)

### Arguments

`con` | a connection.
`level` | integer between 0 and 9, the compression level when writing.
`allowNonCompressed` | logical. When reading, should non-compressed input be allowed?

### Details

If `con` is open then the modified connection is opened. Closing the wrapper connection will also close the underlying connection.

Reading from a connection which does not supply a `gzip` magic header is equivalent to reading from the original connection if `allowNonCompressed` is true, otherwise an error.

The original connection becomes unusable: any object pointing to it will now refer to the modified connection.

When the connection is opened for reading, the input is expected to start with the `gzip` magic header. If it does not and if `allowNonCompressed = TRUE` (the default) the input is read as-is.

### Value

An object inheriting from class `"connection"`. This is the same connection number as supplied, but with a modified internal structure.

### See Also

`gzfile`

### Examples

    ## Not run:
    ## This example is no longer available
    ## print the value to see what objects were created.
    con <- url("http://hesweb1.med.virginia.edu/biostat/s/data/sav/kprats.sav")
    print(load(con))
    close(con)
    ## End(Not run)

    ## gzfile and gzcon can inter-work.
    ## Of course here one would used gzfile, but file() can be replaced by
    ## any other connection generator.
    zz <- gzfile("ex.gz", "w")
    cat("TITLE extra line", "2 3 5 7", "", "11 13 17", file = zz, sep = "\n")
    close(zz)
    readLines(zz <- gzcon(file("ex.gz", "rb")))
    close(zz)
    unlink("ex.gz")

    zz <- gzcon(file("ex.gz", "wb"))
    cat("TITLE extra line", "2 3 5 7", "", "11 13 17", file = zz, sep = "\n")
    close(zz)
    readLines(zz <- gzfile("ex.gz"))
    close(zz)
    unlink("ex.gz")

[Package base version 2.3.1 Index]