Append File
Append data to a file.
Usage
var appendFile = require( '@stdlib/fs/append-file' );
appendFile( file, data[, options], clbk )
Asynchronously appends data
to a file
.
var join = require( 'path' ).join;
var fpath = join( __dirname, 'examples', 'fixtures', 'file.txt' );
appendFile( fpath, 'beep boop\n', onAppend );
function onAppend( error ) {
if ( error ) {
console.log( error instanceof Error );
// => false
}
}
The data
argument may be either a string
or a Buffer
.
var join = require( 'path' ).join;
var string2buffer = require( '@stdlib/buffer/from-string' );
var fpath = join( __dirname, 'examples', 'fixtures', 'file.txt' );
appendFile( fpath, string2buffer( 'beep boop\n' ), onAppend );
function onAppend( error ) {
if ( error ) {
console.log( error instanceof Error );
// => false
}
}
The function accepts the same options
and has the same defaults as fs.appendFile()
.
appendFile.sync( file, data[, options] )
Synchronously appends data
to a file
.
var join = require( 'path' ).join;
var fpath = join( __dirname, 'examples', 'fixtures', 'file.txt' );
var err = appendFile.sync( fpath, 'beep boop\n' );
if ( err instanceof Error ) {
throw err;
}
The function accepts the same options
and has the same defaults as fs.appendFileSync()
.
Notes
The difference between this
appendFile.sync
andfs.appendFileSync()
is thatfs.appendFileSync()
will throw if anerror
is encountered (e.g., if given a non-existent directory path) and this API will return anerror
. Hence, the following anti-patternvar fs = require( 'fs' ); // Check for directory path existence to prevent an error being thrown... if ( fs.existsSync( '/path/to' ) ) { fs.appendFileSync( '/path/to/file.txt', 'beep boop\n' ); }
can be replaced by an approach which addresses existence via
error
handling.var appendFile = require( '@stdlib/fs/append-file' ); // Explicitly handle the error... var err = appendFile.sync( '/path/to/file.txt', 'boop beep\n' ); if ( err instanceof Error ) { // You choose what to do... throw err; }
Examples
var join = require( 'path' ).join;
var appendFile = require( '@stdlib/fs/append-file' );
var fpath = join( __dirname, 'examples', 'fixtures', 'file.txt' );
// Synchronously append data to a file:
var error = appendFile.sync( fpath, 'beep boop\n', 'utf8' );
// Function successfully executes and returns null
console.log( error instanceof Error );
// => false
// Asynchronously append data to a file:
appendFile( fpath, 'beep boop\n', onAppend );
function onAppend( error ) {
if ( error ) {
console.error( 'Error: %s', error.message );
}
console.log( 'Success!!!' );
}
CLI
Usage
Usage: append-file [options] <filepath>
Options:
-h, --help Print this message.
-V, --version Print the package version.
--enc, --encoding encoding Encoding. Default: 'utf8'.
--flag flag Flag. Default: 'a'.
--mode mode Mode. Default: 0o666.
Notes
- Relative output file paths are resolved relative to the current working directory.
- Errors are written to
stderr
. - File contents should be provided over
stdin
as part of a standard stream pipeline.
Examples
$ printf 'beep boop\n' | append-file ./examples/fixtures/file.txt