Class MonitoredOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- ghidra.util.MonitoredOutputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
public class MonitoredOutputStream extends java.io.OutputStream
An OutputStream which utilizes a TaskMonitor to indicate output progress and allows the operation to be cancelled via the TaskMonitor.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.io.OutputStream
out
-
Constructor Summary
Constructors Constructor Description MonitoredOutputStream(java.io.OutputStream out, TaskMonitor monitor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Closes this output stream and releases any system resources associated with the stream.void
flush()
Flushes this output stream and forces any buffered output bytes to be written out to the stream.void
setProgress(int count)
Reset the current progress count to the specified value.void
write(byte[] b)
Writesb.length
bytes to this output stream.void
write(byte[] b, int off, int len)
Writeslen
bytes from the specifiedbyte
array starting at offsetoff
to this output stream.void
write(int b)
Writes the specifiedbyte
to this output stream.
-
-
-
Constructor Detail
-
MonitoredOutputStream
public MonitoredOutputStream(java.io.OutputStream out, TaskMonitor monitor)
-
-
Method Detail
-
setProgress
public void setProgress(int count)
Reset the current progress count to the specified value.
-
write
public void write(int b) throws java.io.IOException
Writes the specifiedbyte
to this output stream.The
write
method ofFilterOutputStream
calls thewrite
method of its underlying output stream, that is, it performs out.write(b).Implements the abstract write method of OutputStream.
- Specified by:
write
in classjava.io.OutputStream
- Parameters:
b
- thebyte
.- Throws:
java.io.IOException
- if an I/O error occurs.
-
write
public void write(byte[] b) throws java.io.IOException
Writesb.length
bytes to this output stream.The
write
method ofFilterOutputStream
calls itswrite
method of three arguments with the argumentsb
,0
, andb.length
.Note that this method does not call the one-argument
write
method of its underlying stream with the single argumentb
.- Overrides:
write
in classjava.io.OutputStream
- Parameters:
b
- the data to be written.- Throws:
java.io.IOException
- if an I/O error occurs.- See Also:
FilterOutputStream.write(byte[], int, int)
-
write
public void write(byte[] b, int off, int len) throws java.io.IOException
Writeslen
bytes from the specifiedbyte
array starting at offsetoff
to this output stream.The
write
method ofFilterOutputStream
calls thewrite
method of one argument on eachbyte
to output.Note that this method does not call the
write
method of its underlying input stream with the same arguments. Subclasses ofFilterOutputStream
should provide a more efficient implementation of this method.- Overrides:
write
in classjava.io.OutputStream
- Parameters:
b
- the data.off
- the start offset in the data.len
- the number of bytes to write.- Throws:
java.io.IOException
- if an I/O error occurs.- See Also:
FilterOutputStream.write(int)
-
flush
public void flush() throws java.io.IOException
Flushes this output stream and forces any buffered output bytes to be written out to the stream.The
flush
method ofFilterOutputStream
calls theflush
method of its underlying output stream.- Specified by:
flush
in interfacejava.io.Flushable
- Overrides:
flush
in classjava.io.OutputStream
- Throws:
java.io.IOException
- if an I/O error occurs.
-
close
public void close() throws java.io.IOException
Closes this output stream and releases any system resources associated with the stream.The
close
method ofFilterOutputStream
calls itsflush
method, and then calls theclose
method of its underlying output stream.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.OutputStream
- Throws:
java.io.IOException
- if an I/O error occurs.- See Also:
FilterOutputStream.flush()
-
-