R: Reactive file reader

reactiveFileReader {shiny} | R Documentation

## Reactive file reader

### Description

Given a file path and read function, returns a reactive data source for the contents of the file.

### Usage

    reactiveFileReader(intervalMillis, session, filePath, readFunc, ...)

### Arguments

`intervalMillis` | Approximate number of milliseconds to wait between checks of the file's last modified time. This can be a numeric value, or a function that returns a numeric value.
`session` | The user session to associate this file reader with, or `NULL` if none. If non-null, the reader will automatically stop when the session ends.
`filePath` | The file path to poll against and to pass to `readFunc`. This can either be a single-element character vector, or a function that returns one.
`readFunc` | The function to use to read the file; must expect the first argument to be the file path to read. The return value of this function is used as the value of the reactive file reader.
`...` | Any additional arguments to pass to `readFunc` whenever it is invoked.

### Details

`reactiveFileReader` works by periodically checking the file's last modified time; if it has changed, then the file is re-read and any reactive dependents are invalidated.

The `intervalMillis`, `filePath`, and `readFunc` functions will each be executed in a reactive context; therefore, they may read reactive values and reactive expressions.

### Value

A reactive expression that returns the contents of the file, and automatically invalidates when the file changes on disk (as determined by last modified time).

### See Also

`reactivePoll`

### Examples

    ## Not run:
    # Per-session reactive file reader
    function(input, output, session) {
      fileData <- reactiveFileReader(1000, session, 'data.csv', read.csv)

      output$data <- renderTable({
        fileData()
      })
    }

    # Cross-session reactive file reader. In this example, all sessions share
    # the same reader, so read.csv only gets executed once no matter how many
    # user sessions are connected.
    fileData <- reactiveFileReader(1000, NULL, 'data.csv', read.csv)
    function(input, output, session) {
      output$data <- renderTable({
        fileData()
      })
    }

    ## End(Not run)

[Package shiny version 1.2.0 Index]