public class ProgressMonitorInputStream extends FilterInputStream
InputStream in = new BufferedInputStream(
new ProgressMonitorInputStream(
parentComponent,
"Reading " + fileName,
new FileInputStream(fileName)));
这将创建一个进度监视器来监视读取输入流的进度。 如果需要一段时间,将弹出一个ProgressDialog来通知用户。 如果用户点击“取消”按钮,则会在下次读取时抛出InterruptedIOException异常。 所有正确的清理都是在流关闭时完成的。
有关进一步的文档和示例,请参阅Java Tutorial中的 How to Monitor Progress 。
ProgressMonitor
, JOptionPane
in
Constructor and Description |
---|
ProgressMonitorInputStream(Component parentComponent, Object message, InputStream in)
构造一个对象来监视输入流的进度。
|
Modifier and Type | Method and Description |
---|---|
void |
close()
覆盖
FilterInputStream.close 以关闭进度监视器以及流。
|
ProgressMonitor |
getProgressMonitor()
获取此流所使用的ProgressMonitor对象。
|
int |
read()
覆盖
FilterInputStream.read ,以便在读取后更新进度监视器。
|
int |
read(byte[] b)
覆盖
FilterInputStream.read ,以便在读取后更新进度监视器。
|
int |
read(byte[] b, int off, int len)
覆盖
FilterInputStream.read ,以便在读取后更新进度监视器。
|
void |
reset()
覆盖
FilterInputStream.reset 以重置进度监视器以及流。
|
long |
skip(long n)
覆盖
FilterInputStream.skip 以在跳过后更新进度监视器。
|
available, mark, markSupported
public ProgressMonitorInputStream(Component parentComponent, Object message, InputStream in)
message
- 描述性文本放在对话框中,如果弹出。
parentComponent
- 触发被监视操作的组件。
in
- 要监视的输入流。
public ProgressMonitor getProgressMonitor()
public int read() throws IOException
FilterInputStream.read
以便在读取后更新进度监视器。
read
在
FilterInputStream
类
-1
。
IOException
- 如果发生I / O错误。
FilterInputStream.in
public int read(byte[] b) throws IOException
FilterInputStream.read
以便在读取后更新进度监视器。
read
在
FilterInputStream
b
- 读取数据的缓冲区。
-1
。
IOException
- 如果发生I / O错误。
FilterInputStream.read(byte[], int, int)
public int read(byte[] b, int off, int len) throws IOException
FilterInputStream.read
,以便在读取后更新进度监视器。
read
在
FilterInputStream
b
- 读取数据的缓冲区。
off
- 目标数组
b
的起始偏移量
len
- 读取的最大字节数。
-1
。
IOException
- 如果发生I / O错误。
FilterInputStream.in
public long skip(long n) throws IOException
FilterInputStream.skip
以在跳过后更新进度监视器。
skip
在
FilterInputStream
n
- 要跳过的字节数。
IOException
- 如果流不支持查询,或者发生其他I / O错误。
public void close() throws IOException
FilterInputStream.close
以关闭进度监视器以及流。
close
在接口
Closeable
close
在接口
AutoCloseable
close
在
FilterInputStream
IOException
- 如果发生I / O错误。
FilterInputStream.in
public void reset() throws IOException
FilterInputStream.reset
以重置进度监视器以及流。
reset
在
FilterInputStream
IOException
- 如果流未标记或标记已被无效。
FilterInputStream.in
,
FilterInputStream.mark(int)