The base class for streams that write data to some kind of destination. More...
#include <juce_OutputStream.h>
Public Member Functions | |
virtual | ~OutputStream () |
Destructor. More... | |
virtual void | flush ()=0 |
If the stream is using a buffer, this will ensure it gets written out to the destination. More... | |
const String & | getNewLineString () const noexcept |
Returns the current new-line string that was set by setNewLineString(). More... | |
virtual int64 | getPosition ()=0 |
Returns the stream's current position. More... | |
void | setNewLineString (const String &newLineString) |
Sets the string to write to the stream when a new line is written. More... | |
virtual bool | setPosition (int64 newPosition)=0 |
Tries to move the stream's output position. More... | |
virtual bool | write (const void *dataToWrite, size_t numberOfBytes)=0 |
Writes a block of data to the stream. More... | |
virtual bool | writeBool (bool boolValue) |
Writes a boolean to the stream as a single byte. More... | |
virtual bool | writeByte (char byte) |
Writes a single byte to the stream. More... | |
virtual bool | writeCompressedInt (int value) |
Writes a condensed binary encoding of a 32-bit integer. More... | |
virtual bool | writeDouble (double value) |
Writes a 64-bit floating point value to the stream in a binary format. More... | |
virtual bool | writeDoubleBigEndian (double value) |
Writes a 64-bit floating point value to the stream in a binary format. More... | |
virtual bool | writeFloat (float value) |
Writes a 32-bit floating point value to the stream in a binary format. More... | |
virtual bool | writeFloatBigEndian (float value) |
Writes a 32-bit floating point value to the stream in a binary format. More... | |
virtual int64 | writeFromInputStream (InputStream &source, int64 maxNumBytesToWrite) |
Reads data from an input stream and writes it to this stream. More... | |
virtual bool | writeInt (int value) |
Writes a 32-bit integer to the stream in a little-endian byte order. More... | |
virtual bool | writeInt64 (int64 value) |
Writes a 64-bit integer to the stream in a little-endian byte order. More... | |
virtual bool | writeInt64BigEndian (int64 value) |
Writes a 64-bit integer to the stream in a big-endian byte order. More... | |
virtual bool | writeIntBigEndian (int value) |
Writes a 32-bit integer to the stream in a big-endian byte order. More... | |
virtual bool | writeRepeatedByte (uint8 byte, size_t numTimesToRepeat) |
Writes a byte to the output stream a given number of times. More... | |
virtual bool | writeShort (short value) |
Writes a 16-bit integer to the stream in a little-endian byte order. More... | |
virtual bool | writeShortBigEndian (short value) |
Writes a 16-bit integer to the stream in a big-endian byte order. More... | |
virtual bool | writeString (const String &text) |
Stores a string in the stream in a binary format. More... | |
virtual bool | writeText (const String &text, bool asUTF16, bool writeUTF16ByteOrderMark, const char *lineEndings) |
Writes a string of text to the stream. More... | |
Protected Member Functions | |
OutputStream () | |
Private Attributes | |
String | newLineString |
The base class for streams that write data to some kind of destination.
Input and output streams are used throughout the library - subclasses can override some or all of the virtual functions to implement their behaviour.
@tags{Core}
|
protected |
|
virtual |
Destructor.
Some subclasses might want to do things like call flush() during their destructors.
|
pure virtual |
If the stream is using a buffer, this will ensure it gets written out to the destination.
Implemented in juce::MemoryOutputStream, juce::FileOutputStream, and juce::GZIPCompressorOutputStream.
|
inlinenoexcept |
Returns the current new-line string that was set by setNewLineString().
|
pure virtual |
Returns the stream's current position.
Implemented in juce::MemoryOutputStream, juce::FileOutputStream, and juce::GZIPCompressorOutputStream.
void juce::OutputStream::setNewLineString | ( | const String & | newLineString | ) |
Sets the string to write to the stream when a new line is written.
By default this will be set the value of NewLine::getDefault().
Tries to move the stream's output position.
Not all streams will be able to seek to a new position - this will return false if it fails to work.
Implemented in juce::MemoryOutputStream, juce::FileOutputStream, and juce::GZIPCompressorOutputStream.
|
pure virtual |
Writes a block of data to the stream.
When creating a subclass of OutputStream, this is the only write method that needs to be overloaded - the base class has methods for writing other types of data which use this to do the work.
dataToWrite | the target buffer to receive the data. This must not be null. |
numberOfBytes | the number of bytes to write. |
Implemented in juce::MemoryOutputStream, juce::FileOutputStream, and juce::GZIPCompressorOutputStream.
Writes a boolean to the stream as a single byte.
This is encoded as a binary byte (not as text) with a value of 1 or 0.
|
virtual |
Writes a single byte to the stream.
Writes a condensed binary encoding of a 32-bit integer.
If you're storing a lot of integers which are unlikely to have very large values, this can save a lot of space, because values under 0xff will only take up 2 bytes, under 0xffff only 3 bytes, etc.
The format used is: number of significant bytes + up to 4 bytes in little-endian order.
|
virtual |
Writes a 64-bit floating point value to the stream in a binary format.
The eight raw bytes of the double value are written out as a little-endian 64-bit int.
|
virtual |
Writes a 64-bit floating point value to the stream in a binary format.
The eight raw bytes of the double value are written out as a big-endian 64-bit int.
Writes a 32-bit floating point value to the stream in a binary format.
The binary 32-bit encoding of the float is written as a little-endian int.
Writes a 32-bit floating point value to the stream in a binary format.
The binary 32-bit encoding of the float is written as a big-endian int.
|
virtual |
Reads data from an input stream and writes it to this stream.
source | the stream to read from |
maxNumBytesToWrite | the number of bytes to read from the stream (if this is less than zero, it will keep reading until the input is exhausted) |
Reimplemented in juce::MemoryOutputStream.
Writes a 32-bit integer to the stream in a little-endian byte order.
Writes a 64-bit integer to the stream in a little-endian byte order.
Writes a 64-bit integer to the stream in a big-endian byte order.
Writes a 32-bit integer to the stream in a big-endian byte order.
Writes a byte to the output stream a given number of times.
Reimplemented in juce::MemoryOutputStream, and juce::FileOutputStream.
|
virtual |
Writes a 16-bit integer to the stream in a little-endian byte order.
This will write two bytes to the stream: (value & 0xff), then (value >> 8).
|
virtual |
Writes a 16-bit integer to the stream in a big-endian byte order.
This will write two bytes to the stream: (value >> 8), then (value & 0xff).
Stores a string in the stream in a binary format.
This isn't the method to use if you're trying to append text to the end of a text-file! It's intended for storing a string so that it can be retrieved later by InputStream::readString().
It writes the string to the stream as UTF8, including the null termination character.
For appending text to a file, instead use writeText, or operator<<
|
virtual |
Writes a string of text to the stream.
It can either write the text as UTF-8 or UTF-16, and can also add the UTF-16 byte-order-mark bytes (0xff, 0xfe) to indicate the endianness (these should only be used at the start of a file).
If lineEndings is nullptr, then line endings in the text won't be modified. If you pass "\\n" or "\\r\\n" then this function will replace any existing line feeds.
|
private |