Class ByteSink
java.lang.Object
com.google.common.io.ByteSink
A destination to which bytes can be written, such as a file. Unlike an
OutputStream, a
ByteSink is not an open, stateful stream that can be written to and closed. Instead, it
is an immutable supplier of OutputStream instances.
ByteSink provides two kinds of methods:
- Methods that return a stream: These methods should return a new, independent instance each time they are called. The caller is responsible for ensuring that the returned stream is closed.
- Convenience methods: These are implementations of common operations that are typically implemented by opening a stream using one of the methods in the first category, doing something and finally closing the stream or channel that was opened.
- Since:
- 14.0
- Author:
- Colin Decker
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionasCharSink(Charset charset) Opens a new bufferedOutputStreamfor writing to this sink.abstract OutputStreamOpens a newOutputStreamfor writing to this sink.voidwrite(byte[] bytes) Writes all the given bytes to this sink.longwriteFrom(InputStream input) Writes all the bytes from the givenInputStreamto this sink.
-
Constructor Details
-
ByteSink
protected ByteSink()Constructor for use by subclasses.
-
-
Method Details
-
asCharSink
-
openStream
Opens a newOutputStreamfor writing to this sink. This method returns a new, independent stream each time it is called.The caller is responsible for ensuring that the returned stream is closed.
- Throws:
IOException- if an I/O error occurs while opening the stream
-
openBufferedStream
Opens a new bufferedOutputStreamfor writing to this sink. The returned stream is not required to be aBufferedOutputStreamin order to allow implementations to simply delegate toopenStream()when the stream returned by that method does not benefit from additional buffering (for example, aByteArrayOutputStream). This method returns a new, independent stream each time it is called.The caller is responsible for ensuring that the returned stream is closed.
- Throws:
IOException- if an I/O error occurs while opening the stream- Since:
- 15.0 (in 14.0 with return type
BufferedOutputStream)
-
write
Writes all the given bytes to this sink.- Throws:
IOException- if an I/O occurs while writing to this sink
-
writeFrom
Writes all the bytes from the givenInputStreamto this sink. Does not closeinput.- Returns:
- the number of bytes written
- Throws:
IOException- if an I/O occurs while reading frominputor writing to this sink
-