Class OSSOutputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

    @NotThreadSafe
    public final class OSSOutputStream
    extends java.io.OutputStream
    A stream for writing a file into OSS. The data will be persisted to a temporary directory on the local disk and copied as a complete file when the close() method is called.
    • Constructor Summary

      Constructors 
      Constructor Description
      OSSOutputStream​(java.lang.String bucketName, java.lang.String key, com.aliyun.oss.OSS client, java.util.List<java.lang.String> tmpDirs)
      Creates a name instance of OSSOutputStream.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      Closes this output stream.
      void flush()
      Flushes this output stream and forces any buffered output bytes to be written out.
      void write​(byte[] b)
      Writes the given byte array to this output stream.
      void write​(byte[] b, int off, int len)
      Writes the given number of bytes from the given byte array starting at the given offset to this output stream.
      void write​(int b)
      Writes the given bytes to this output stream.
      • Methods inherited from class java.io.OutputStream

        nullOutputStream
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • OSSOutputStream

        public OSSOutputStream​(java.lang.String bucketName,
                               java.lang.String key,
                               com.aliyun.oss.OSS client,
                               java.util.List<java.lang.String> tmpDirs)
                        throws java.io.IOException
        Creates a name instance of OSSOutputStream.
        Parameters:
        bucketName - the name of the bucket
        key - the key of the file
        client - the client for OSS
        tmpDirs - a list of temporary directories
        Throws:
        java.io.IOException
    • Method Detail

      • write

        public void write​(int b)
                   throws java.io.IOException
        Writes the given bytes to this output stream. Before close, the bytes are all written to local file.
        Specified by:
        write in class java.io.OutputStream
        Parameters:
        b - the bytes to write
        Throws:
        java.io.IOException
      • write

        public void write​(byte[] b)
                   throws java.io.IOException
        Writes the given byte array to this output stream. Before close, the bytes are all written to local file.
        Overrides:
        write in class java.io.OutputStream
        Parameters:
        b - the byte array
        Throws:
        java.io.IOException
      • write

        public void write​(byte[] b,
                          int off,
                          int len)
                   throws java.io.IOException
        Writes the given number of bytes from the given byte array starting at the given offset to this output stream. Before close, the bytes are all written to local file.
        Overrides:
        write in class java.io.OutputStream
        Parameters:
        b - the byte array
        off - the start offset in the data
        len - the number of bytes to write
        Throws:
        java.io.IOException
      • flush

        public void flush()
                   throws java.io.IOException
        Flushes this output stream and forces any buffered output bytes to be written out. Before close, the data are flushed to local file.
        Specified by:
        flush in interface java.io.Flushable
        Overrides:
        flush in class java.io.OutputStream
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Closes this output stream. When an output stream is closed, the local temporary file is uploaded to OSS Service. Once the file is uploaded, the temporary file is deleted.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.OutputStream
        Throws:
        java.io.IOException