Open Search
    OutputStream Manual

    Table of Contents

    About

    An output stream is used to write data to a resource defined with a maxon::Url. maxon::OutputStreamInterface is based on maxon::BaseStreamInterface.

    Usage

    maxon::BaseStreamInterface provides these simple functions:

    Note
    To append to the end of a file use the flags maxon::OPENSTREAMFLAGS::WRITE_DONT_TRUNCATE and maxon::OPENSTREAMFLAGS::SEEK_TO_END.
    // This example writes a maxon::String into a local file.
    // construct file URL
    const maxon::Url url = (targetFolder + maxon::Url("sometext.txt"_s))iferr_return;
    // only proceed if file does not exist yet
    if (url.IoDetect() == maxon::IODETECT::NONEXISTENT)
    {
    // define text
    const maxon::String data { "Hello World!" };
    const maxon::BaseArray<maxon::Char> memory = data.GetCString() iferr_return;
    // write to file
    const maxon::OutputStreamRef stream = url.OpenOutputStream() iferr_return;
    stream.Write(memory) iferr_return;
    }
    Definition: basearray.h:415
    Definition: string.h:1287
    Definition: url.h:936
    PyObject * stream
    Definition: codecs.h:186
    @ NONEXISTENT
    Url doesn't exist.
    #define iferr_return
    Definition: resultbase.h:1531
    // This example loads a file from the web and saves it to the local file system.
    // check if the given URL references a file on the web
    const maxon::UrlScheme scheme = webFile.GetScheme();
    const maxon::Bool isHTTP = scheme == maxon::URLSCHEME_HTTP;
    const maxon::Bool isHTTPS = scheme == maxon::URLSCHEME_HTTPS;
    if (isHTTP || isHTTPS)
    {
    // read data
    // input stream
    const maxon::InputStreamRef inputStream = webFile.OpenInputStream() iferr_return;
    const maxon::Int64 length = inputStream.GetStreamLength() iferr_return;
    inputStream.Read(data) iferr_return;
    inputStream.Close() iferr_return;
    // save data to file
    // prepare file name
    const maxon::Url localFile = (targetFolder + webFile.GetName())iferr_return;
    // output stream
    const maxon::OutputStreamRef outputStream = localFile.OpenOutputStream() iferr_return;
    // write to file
    outputStream.Write(data) iferr_return;
    outputStream.Close() iferr_return;
    }
    ResultMem Resize(Int newCnt, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::DEFAULT)
    Resizes the array to contain newCnt elements. If newCnt is smaller than GetCount() all extra elements...
    Definition: basearray.h:1217
    Definition: apibaseid.h:243
    bool Bool
    boolean type, possible values are only false/true, 8 bit
    Definition: apibase.h:180
    int64_t Int64
    64 bit signed integer datatype.
    Definition: apibase.h:177
    static constexpr LiteralId URLSCHEME_HTTP
    Scheme identifier for Hypertext Transfer Protocol (HTTP) connections.
    Definition: url.h:759
    static constexpr LiteralId URLSCHEME_HTTPS
    Scheme identifier for Hypertext Transfer Protocol Secure (HTTPS) connections.
    Definition: url.h:765
    PyWideStringList Py_ssize_t length
    Definition: initconfig.h:448

    Further Reading