# Poco

# class FileOutputStream

Library: Foundation
Package: Streams
Header: Poco/FileStream.h

## Description

An output stream for writing to a file.

Files are always opened in binary mode, a text mode with CR-LF translation is not supported. Thus, the file is always opened as if the std::ios::binary flag was specified. Use an OutputLineEndingConverter if you require CR-LF translation.

On Windows platforms, UTF-8 encoded Unicode paths are correctly handled.

## Inheritance

Direct Base Classes: FileIOS, std::ostream

All Base Classes: FileIOS, std::ios, std::ostream

## Member Summary

Member Functions: open

Inherited Functions: close, flushToDisk, nativeHandle, open, openHandle, rdbuf, size

## Constructors

### FileOutputStream

FileOutputStream();

Creats an unopened FileOutputStream.

### FileOutputStream

FileOutputStream(
const std::string & path,
std::ios::openmode mode = std::ios::out | std::ios::trunc
);

Creates the FileOutputStream for the file given by path, using the given mode.

The std::ios::out is always set, regardless of the actual value specified for mode.

Throws a FileException (or a similar exception) if the file does not exist or is not accessible for other reasons and a new file cannot be created.

NOTE: The default mode std::ios::out | std::ios::trunc is different from the default for std::ofstream, which is std::ios::out only. This is for backwards compatibility with earlier POCO versions.

## Destructor

### ~FileOutputStream

~FileOutputStream() override;

Destroys the FileOutputStream.

## Member Functions

### open

void open(
const std::string & path,
std::ios::openmode mode = std::ios::out | std::ios::trunc
) override;

Opens the file specified by path, using the given mode, which always includes std::ios::out, even if not specified.

Throws a FileException (or a similar exception) if the file does not exist or is not accessible for other reasons and a new file cannot be created.

NOTE: The default mode std::ios::out | std::ios::trunc is different from the default for std::ostream, which is std::ios::out only. This is for backwards compatibility with earlier POCO versions.

See also: Poco::FileIOS::open()