Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at


This interface is an output stream that lets you stream to a file.
Inherits from: nsIOutputStream Last changed in Gecko 1.7

Method overview

void init(in nsIFile file, in long ioFlags, in long perm, in long behaviorFlags);


Behavior flag constants

Constant Value Description
DEFER_OPEN 1<<0 See the same constant in nsIFileInputStream. The deferred open will be performed when one of the following is called:
  • Seek()
  • Tell()
  • Write()
  • Flush()

DEFER_OPEN is useful if we use the stream on a background thread, so that the opening and possible stating of the file happens there as well.

Note: Using this flag results in the file not being opened during the call to init(). This means that any errors that might happen when this flag is not set would happen during the first write, and if the file is to be created, it will not appear on the disk until the first write.



void init(
  in nsIFile file,
  in long ioFlags,
  in long perm,
  in long behaviorFlags
File to write to (must QI to nsILocalFile)
File open flags listed are listed in the PR_Open() documentation. Use -1 to open the file in default mode (PR_WRONLY | PR_CREATE_FILE | PR_TRUNCATE).
File mode bits are described in the PR_Open documentation. If set to -1 the default permissions (0664) will be used.
Flags specifying various behaviors of the class; see Behavior flag constants above.

See also

Document Tags and Contributors

 Contributors to this page: Sheppy, darktrojan, philikon, trevorh, Smi, Arehman4
 Last updated by: Sheppy,