gzcon

0th

Percentile

(De)compress I/O Through Connections

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

Keywords
file, connection
Usage
gzcon(con, level = 6, allowNonCompressed = TRUE, text = FALSE)
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?

text

logical. Should the connection be text-oriented? This is distinct from the mode of the connection (must always be binary). If TRUE, pushBack works on the connection, otherwise readBin and friends apply.

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.

Compressed output will contain embedded NUL bytes, and so con is not permitted to be a textConnection opened with open = "w". Use a writable rawConnection to compress data into a variable.

The original connection becomes unusable: any object pointing to it will now refer to the modified connection. For this reason, the new connection needs to be closed explicitly.

Value

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

See Also

gzfile

Aliases
  • gzcon
Examples
library(base) # NOT RUN { ## Uncompress a data file from a URL z <- gzcon(url("http://www.stats.ox.ac.uk/pub/datasets/csb/ch12.dat.gz")) # read.table can only read from a text-mode connection. raw <- textConnection(readLines(z)) close(z) dat <- read.table(raw) close(raw) dat[1:4, ] # } # NOT RUN { ## gzfile and gzcon can inter-work. ## Of course here one would use gzfile, but file() can be replaced by ## any other connection generator. zzfil <- tempfile(fileext = ".gz") zz <- gzfile(zzfil, "w") cat("TITLE extra line", "2 3 5 7", "", "11 13 17", file = zz, sep = "\n") close(zz) readLines(zz <- gzcon(file(zzfil, "rb"))) close(zz) unlink(zzfil) # } # NOT RUN { <!-- % Cygwin seems to require a different name --> # } # NOT RUN { zzfil2 <- tempfile(fileext = ".gz") zz <- gzcon(file(zzfil2, "wb")) cat("TITLE extra line", "2 3 5 7", "", "11 13 17", file = zz, sep = "\n") close(zz) readLines(zz <- gzfile(zzfil2)) close(zz) unlink(zzfil2) # }
Documentation reproduced from package base, version 3.5.2, License: Part of R 3.5.2

Community examples

Looks like there are no examples yet.