serialize {base} | R Documentation

## Simple Serialization Interface

### Description

A simple low level interface for serializing to connections.

### Usage

    serialize(object, connection, ascii = FALSE, refhook = NULL)
    unserialize(connection, refhook = NULL)
    .saveRDS(object, file = "", ascii = FALSE, version = NULL,
             compress = FALSE, refhook = NULL)
    .readRDS(file, refhook = NULL)

### Arguments

`object` | R object to serialize.
`file` | a connection or the name of the file where the R object is saved to or read from.
`ascii` | a logical. If `TRUE`, an ASCII representation is written; otherwise (default), a more compact binary one is used.
`version` | the workspace format version to use. `NULL` specifies the current default format. The version used from R 0.99.0 to R 1.3.1 was version 1. The default format as from R 1.4.0 is version 2.
`compress` | a logical specifying whether saving to a named file is to use compression. Ignored when `file` is a connection and for workspace format version 1.
`connection` | an open connection.
`refhook` | a hook function for handling reference objects.

### Details

The function `serialize` writes `object` to the specified connection. Sharing of reference objects is preserved within the object but not across separate calls to serialize. If `connection` is `NULL` then `object` is serialized to a scaler string, which is returned as the result of `serialize`. For a text mode connection, the default value of `ascii` is set to `TRUE`.

`unserialize` reads an object from `connection`. `connection` may also be a scaler string.

The `refhook` functions can be used to customize handling of non-system reference objects (all external pointers and weak references, and all environments other than name space and package environments and `.GlobalEnv`). The hook function for `serialize` should return a character vector for references it wants to handle; otherwise it should return `NULL`. The hook for `unserialize` will be called with character vectors supplied to `serialize` and should return an appropriate object.

### Warning

These functions are still experimental. Both names, interfaces and values might change in future versions. `.saveRDS` and `.readRDS` are intended for internal use.

### Examples

    x<-serialize(list(1,2,3),NULL)
    unserialize(x)

[Package Contents]