Qore Programming Language Reference Manual  1.8.0
Qore::FileOutputStream Class Reference

This class implements the OutputStream interface for writing bytes to a file. More...

Inheritance diagram for Qore::FileOutputStream:

Public Member Methods

nothing close ()
 Closes the output stream and releases any resources. More...
 
 constructor (string fileName, bool append=False, softint mode=0644, *string encoding)
 Creates the FileOutputStream by opening or creating a file. More...
 
string getEncoding ()
 Returns the character encoding for the FileOutputStream. More...
 
nothing write (binary data)
 Writes bytes to the output stream. More...
 
- Public Member Methods inherited from Qore::OutputStream
 constructor ()
 Constructor. More...
 
- Public Member Methods inherited from Qore::StreamBase
 constructor ()
 Throws an exception if called directly; this class can only be instantiated by builtin subclasses. More...
 
int getThreadId ()
 Get the currently assigned thread id or -1 if not assigned to any thread.
 
nothing reassignThread ()
 Reassigns current thread as thread used for stream manipulation. More...
 
nothing unassignThread ()
 Unassigns current thread as thread used for stream manipulation. More...
 

Detailed Description

This class implements the OutputStream interface for writing bytes to a file.

Restrictions:
Qore::PO_NO_FILESYSTEM
Example: FileOutputStream basic usage
FileOutputStream fos("file.ext");
fos.write(<01>);
fos.write(<0203>);
fos.close();
# file.ext now contains three bytes: 01 02 03
Note
stream classes are not designed to be accessed from multiple threads; they have been implemented without locking for fast and efficient use when used from a single thread. For methods that would be unsafe to use in another thread, any use of such methods in threads other than the thread where the constructor was called will cause a STREAM-THREAD-ERROR to be thrown, unless the stream is handed off to another thread using the StreamBase::unassignThread() method in the thread that currently owns the stream, and the StreamBase::reassignThread() method in the new thread.
See also
StreamWriter for a class that can be used to write various kinds of data to an OutputStream
Since
Qore 0.8.13

Member Function Documentation

◆ close()

nothing Qore::FileOutputStream::close ( )
virtual

Closes the output stream and releases any resources.

Any methods called on a closed output stream will throw an IO-ERROR exception.

Exceptions
IO-ERRORif an I/O error occurs
OUTPUT-STREAM-CLOSED-ERRORthe output stream has already been closed
STREAM-THREAD-ERRORthis exception is thrown if this method is called from any thread other than the thread that created the object

Implements Qore::OutputStream.

◆ constructor()

Qore::FileOutputStream::constructor ( string  fileName,
bool  append = False,
softint  mode = 0644,
*string  encoding 
)

Creates the FileOutputStream by opening or creating a file.

Parameters
fileNamethe name of the file to open
appendif true, then bytes will be written to the end of the file
modepermission bits for when the file is to be created (default: 0644)
encodingthe character encoding of the file; if not present, defaults to the default encoding
Note
raw binary data is written to the output stream, so it's up to the caller to ensure that only valid character data for the given encoding is written to the FileOutputStream object

◆ getEncoding()

string Qore::FileOutputStream::getEncoding ( )

Returns the character encoding for the FileOutputStream.

Code Flags:
CONSTANT
Example:
FileOutputStream fos(filname);
string encoding = fos.getEncoding();
Returns
the character encoding for the FileOutputStream
Note
raw binary data is written to the output stream, so it's up to the caller to ensure that only valid character data for the given encoding is written to the FileOutputStream object

◆ write()

nothing Qore::FileOutputStream::write ( binary  data)
virtual

Writes bytes to the output stream.

Parameters
datathe data to write
Example:
FileOutputStream fos("file.ext");
fos.write(<01>);
fos.write(<0203>);
fos.close();
# file.ext now contains three bytes: 01 02 03
Exceptions
FILE-WRITE-ERRORif an I/O error occurs
OUTPUT-STREAM-CLOSED-ERRORthe output stream has already been closed
STREAM-THREAD-ERRORthis exception is thrown if this method is called from any thread other than the thread that created the object
Note
raw binary data is written to the output stream, so it's up to the caller to ensure that only valid character data for the given encoding is written to the FileOutputStream object

Implements Qore::OutputStream.