# Poco

# class StreamCopier

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

## Description

This class provides static methods to copy the contents from one stream into another.

## Member Summary

Member Functions: copyStream, copyStream64, copyStreamRange, copyStreamRange64, copyStreamRangeUnbuffered, copyStreamRangeUnbuffered64, copyStreamUnbuffered, copyStreamUnbuffered64, copyToString, copyToString64

## Member Functions

### copyStream

static std::streamsize copyStream(
std::istream & istr,
std::ostream & ostr,
std::size_t bufferSize = 8192
);

Writes all bytes readable from istr to ostr, using an internal buffer.

Returns the number of bytes copied.

### copyStream64

static Poco::UInt64 copyStream64(
std::istream & istr,
std::ostream & ostr,
std::size_t bufferSize = 8192
);

Writes all bytes readable from istr to ostr, using an internal buffer.

Returns the number of bytes copied as a 64-bit unsigned integer.

Note: the only difference to copyStream() is that a 64-bit unsigned integer is used to count the number of bytes copied.

### copyStreamRange

static std::streamsize copyStreamRange(
std::istream & istr,
std::ostream & ostr,
std::streampos rangeStart,
std::streamsize rangeLength,
std::size_t bufferSize = 8192
);

Writes range of bytes readable from istr to ostr, using an internal buffer.

Returns the number of bytes copied.

### copyStreamRange64

static Poco::UInt64 copyStreamRange64(
std::istream & istr,
std::ostream & ostr,
std::streampos rangeStart,
std::streamsize rangeLength,
std::size_t bufferSize = 8192
);

Writes range of bytes readable from istr to ostr, using an internal buffer.

Returns the number of bytes copied as a 64-bit unsigned integer.

Note: the only difference to copyStreamRange() is that a 64-bit unsigned integer is used to count the number of bytes copied.

### copyStreamRangeUnbuffered

static std::streamsize copyStreamRangeUnbuffered(
std::istream & istr,
std::ostream & ostr,
std::streampos rangeStart,
std::streamsize rangeLength
);

Writes range of bytes readable from istr to ostr.

Returns the number of bytes copied.

### copyStreamRangeUnbuffered64

static Poco::UInt64 copyStreamRangeUnbuffered64(
std::istream & istr,
std::ostream & ostr,
std::streampos rangeStart,
std::streamsize rangeLength
);

Writes range of bytes readable from istr to ostr.

Returns the number of bytes copied as a 64-bit unsigned integer.

Note: the only difference to copyStreamRangeUnbuffered() is that a 64-bit unsigned integer is used to count the number of bytes copied.

### copyStreamUnbuffered

static std::streamsize copyStreamUnbuffered(
std::istream & istr,
std::ostream & ostr
);

Writes all bytes readable from istr to ostr.

Returns the number of bytes copied.

### copyStreamUnbuffered64

static Poco::UInt64 copyStreamUnbuffered64(
std::istream & istr,
std::ostream & ostr
);

Writes all bytes readable from istr to ostr.

Returns the number of bytes copied as a 64-bit unsigned integer.

Note: the only difference to copyStreamUnbuffered() is that a 64-bit unsigned integer is used to count the number of bytes copied.

### copyToString

static std::streamsize copyToString(
std::istream & istr,
std::string & str,
std::size_t bufferSize = 8192
);

Appends all bytes readable from istr to the given string, using an internal buffer.

Returns the number of bytes copied.

### copyToString64

static Poco::UInt64 copyToString64(
std::istream & istr,
std::string & str,
std::size_t bufferSize = 8192
);

Appends all bytes readable from istr to the given string, using an internal buffer.

Returns the number of bytes copied as a 64-bit unsigned integer.

Note: the only difference to copyToString() is that a 64-bit unsigned integer is used to count the number of bytes copied.