Skip to content
Titanium SDK
Version12.6.3

You are reading 12.6.3. See this page in 13.4.1.

Titanium.Stream

moduleAndroidiPhoneiPadmacOSsince 1.7

Extends Titanium.ModuleTitanium.Proxy

Stream module containing stream utility methods.

This module provides a set of methods for interacting with IOStream objects, including asynchronous versions of the read and write methods offered by all stream objects. These methods should be used in any place where reading from or writing to a stream might block.

See also:

Examples

Stream.pump Example

The following example shows how to use the pump method.

var pumpCallback = function(arg) {
    if(arg.bytesProcessed == -1) {
        Ti.API.info("At end of stream.");
    } else {
        Ti.API.info(String.format("Received %.0f bytes. Total: %.0f bytes.",
                    arg.bytesProcessed, arg.totalBytesProcessed));
        // do something useful with the data in arg.buffer
    }
}
Ti.Stream.pump(inputStream, pumpCallback, 1024);

Write Stream to File

The following example uses the writeStream method to copy the contents of an input stream to a file. This can be used for any kind of input stream -- BufferStream, FileStream, or Socket.TCP.

var outFileStream = Ti.Filesystem.getFile('outfile.txt').open(Ti.Filesystem.MODE_WRITE);

// writes all data from inputStream to outFileStream in chunks of 1024 bytes
var bytesWritten = Ti.Stream.writeStream(inputStream, outFileStream, 1024);
Ti.API.info('Wrote ' + bytesWritten + ' bytes, closing both streams.');

inputStream.close();
outFileStream.close();

Properties 6

apiName

Stringsince Android 3.2.0, iPhone 3.2.0, iPad 3.2.0, macOS 9.2.0read-only

Inherited from Titanium.Proxy

The name of the API that this proxy corresponds to.

bubbleParent

Booleansince Android 3.0.0, iPhone 3.0.0, iPad 3.0.0, macOS 9.2.0

Inherited from Titanium.Proxy

Indicates if the proxy will bubble an event to its parent.

Default: true

Methods 10

Inherited from Titanium.Proxy

Adds the specified callback as an event listener for the named event.

Parameters
ParametersTypeDescription
nameString

Name of the event.

callbackCallback<Titanium.Event>

Callback function to invoke when the event is fired.

4 fields
bubbles Boolean

True if the event will try to bubble up if possible.

cancelBubble Boolean

Set to true to stop the event from bubbling.

source Object

Source object that fired the event.

type String

Name of the event fired.

Creates stream from a Buffer or Blob object.

Returns Titanium.BufferStream or Titanium.BlobStream depending on whether a Buffer or Blob is provided as the source property in params.

Blob obects are read only. Throws an exception if MODE_WRITE or MODE_APPEND is specified along with a blob object.

Parameters
ParametersTypeDescription
paramsCreateStreamArgs

Parameter object, for specifying the source object and mode.

2 fields
mode Number

Mode to open the stream in.

source Titanium.Blob | Titanium.Buffer

Object that the stream will read from or write to.

Inherited from Titanium.Proxy

Fires a synthesized event to any registered listeners.

Parameters
ParametersTypeDescription
nameString

Name of the event.

event?Dictionary

A dictionary of keys and values to add to the Titanium.Event object sent to the listeners.

Reads data from input stream and passes it to a handler method.

After the end of the input stream is reached, the handler is called a final time with no data and bytesProcessed set to -1 to indicate the end of the input data.

Parameters
ParametersTypeDescription
inputStreamTitanium.IOStream

Stream to pump from.

handlerCallback<PumpCallbackArgs>

Handler method that will receive data from inputStream.

7 fields
buffer Titanium.Buffer

Buffer object holding the data currently being pumped to the handler method.

bytesProcessed Number

Number of bytes being passed to this invocation of the handler, or -1 in the event of an error or end of stream.

code Number

Error code. Returns 0 if success is true.

error String

Error message, if any returned.

source Titanium.IOStream

Stream being read from.

success Boolean

Indicates if the operation succeeded.

totalBytesProcessed Number

Total number of bytes read from the stream so far, including the data passed to this current invocation of the handler.

maxChunkSizeNumber

Maximum number of bytes to pass to handler in a single call.

isAsync?Boolean

Specifies if the pump operation should run asynchronously.

Asynchronously reads data from an IOStream into a buffer.

Reads data from the stream and writes it to the buffer. The first byte is written to buffer[offset]. Reads until the provided buffer is full, the end of the stream is detected, or the requested number of bytes have been read. Does not resize the supplied buffer.

A request must include both offset and length parameters, or omit them both.

If the stream is not readable, an error is reported:

  • On iOS, throws an exception.

  • On Android, calls the callback with an error.

If offset is past the last byte of the buffer, throws an exception.

Parameters
ParametersTypeDescription
sourceStreamTitanium.IOStream

Stream to read from.

bufferTitanium.Buffer

Buffer to read into.

offset?Number

Offset to start reading stream data from, in bytes. If specified, length must be specified as well.

length?Number

Number of bytes of data to read from the stream. If specified, offset must be specified as well.

resultsCallbackCallback<ReadCallbackArgs>

Function to call with the results of the read operation.

Reads all data from the specified IOStream.

Reads data from the stream, either synchronously or asynchronously.

Throws an exception if a read error is encountered or data can't be written to the buffer.

If the optional buffer and resultsCallback arguments are specified, the read operation takes place asynchronously, and the results are passed to the callback. The data is written to the provided buffer, which is resized if necessary.

If the buffer and resultsCallback arguments are omitted, a new buffer is allocated and returned.

Parameters
ParametersTypeDescription
sourceStreamTitanium.IOStream

Stream to read from.

buffer?Titanium.Buffer

Buffer to read into. If specified, resultsCallback must be specified as well.

resultsCallback?Callback<ReadCallbackArgs>

Function to call with the results of the read operation. If specified, resultsCallback must be specified as well.

Inherited from Titanium.Proxy

Removes the specified callback as an event listener for the named event.

Parameters
ParametersTypeDescription
nameString

Name of the event.

callbackCallback<Titanium.Event>

Callback function to remove. Must be the same function passed to addEventListener.

4 fields
bubbles Boolean

True if the event will try to bubble up if possible.

cancelBubble Boolean

Set to true to stop the event from bubbling.

source Object

Source object that fired the event.

type String

Name of the event fired.

Asynchronously writes data from a buffer to an IOStream.

Data is read from the buffer and written to the stream.

If the offset and length arguments are specified, data is read from the buffer starting at offset, up to offset+length-1 or the end of the buffer, whichever comes first.

If offset and length are omitted, the entire buffer is written to the stream.

If the output stream is not writable, an error is reported:

  • On iOS, an exception is thrown.

  • On Android, the callback is invoked with an error.

Parameters
ParametersTypeDescription
outputStreamTitanium.IOStream

Stream to write to.

bufferTitanium.Buffer

Buffer to write from.

offset?Number

Offset to start writing buffer data from. If specified, length must be specified as well.

length?Number

Bytes of data to write. If specified, offset must be specified as well.

resultsCallbackCallback<WriteCallbackArgs>

Function to call with the results of the write operation.

Writes all data from an input stream to an output stream.

If the optional resultsCallback argument is supplied, the operation is performed asynchronously.

If the callback is omitted, this method is synchronous, and blocks until all data has been written. The synchronous version Returns the total number of bytes written.

If no data can be read from the input stream because the input stream is at end of stream, behavior varies by platform:

  • iOS throws an exception.

  • Android returns 0, or calls the callback with bytesProcessed set to 0.

Parameters
ParametersTypeDescription
inputStreamTitanium.IOStream

Stream to read from.

outputStreamTitanium.IOStream

Stream to write to.

maxChunkSizeNumber

Maximum number of bytes to copy from inputStream to outputStream in a single operation.

resultsCallback?Callback<WriteStreamCallbackArgs>

Function to call with the results of the writeStream operation.

3 fields
bytesProcessed Number

Number of bytes processed, or -1 in the event of an error or end of stream.

fromStream Titanium.IOStream

Stream being read from.

toStream Titanium.IOStream

Stream being written to.