- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- javax.swing.ProgressMonitorInputStream
-
- All Implemented Interfaces:
-
Closeable
,AutoCloseable
public class ProgressMonitorInputStream extends FilterInputStream
监视从一些InputStream读取进度。 这个ProgressMonitor通常大致以这种形式被调用:InputStream in = new BufferedInputStream( new ProgressMonitorInputStream( parentComponent, "Reading " + fileName, new FileInputStream(fileName)));
这将创建一个进度监视器来监视读取输入流的进度。 如果需要一段时间,将弹出一个ProgressDialog来通知用户。 如果用户点击“取消”按钮,则会在下次读取时抛出InterruptedIOException异常。 所有正确的清理都是在流关闭时完成的。
有关进一步的文档和示例,请参阅“Java教程”一节中的 How to Monitor Progress 。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ProgressMonitor
,JOptionPane
-
-
Field Summary
-
Fields inherited from class java.io.FilterInputStream
in
-
-
构造方法摘要
构造方法 Constructor 描述 ProgressMonitorInputStream(Component parentComponent, Object message, InputStream in)
构造一个对象来监视输入流的进度。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 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
以在跳过后更新进度监视器。-
Methods inherited from class java.io.FilterInputStream
available, mark, markSupported
-
Methods inherited from class java.io.InputStream
readAllBytes, readNBytes, transferTo
-
-
-
-
构造方法详细信息
-
ProgressMonitorInputStream
public ProgressMonitorInputStream(Component parentComponent, Object message, InputStream in)
构造一个对象来监视输入流的进度。- 参数
-
message
- 如果弹出对话框中放置的描述性文本。 -
parentComponent
- 触发被监视操作的组件。 -
in
- 要监视的输入流。
-
-
方法详细信息
-
getProgressMonitor
public ProgressMonitor getProgressMonitor()
获取此流所使用的ProgressMonitor对象。 通常这是不需要的,除非你想通过阅读文件来做某些改变描述性文本的东西。- 结果
- 该对象使用的ProgressMonitor对象
-
read
public int read() throws IOException
覆盖FilterInputStream.read
以便在读取后更新进度监视器。- 重写:
-
read
在FilterInputStream
- 结果
-
数据的下一个字节,如果达到流的末尾,
-1
。 - 异常
-
IOException
- 如果发生I / O错误。 - 另请参见:
-
FilterInputStream.in
-
read
public int read(byte[] b) throws IOException
覆盖FilterInputStream.read
以便在读取后更新进度监视器。- 重写:
-
read
在FilterInputStream
- 参数
-
b
- 读取数据的缓冲区。 - 结果
-
读取到缓冲区中的总字节数,如果没有更多的数据,因为已经到达流的末尾,那么
-1
。 - 异常
-
IOException
- 如果发生I / O错误。 - 另请参见:
-
FilterInputStream.read(byte[], int, int)
-
read
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
-
skip
public long skip(long n) throws IOException
覆盖FilterInputStream.skip
以在跳过后更新进度监视器。- 重写:
-
skip
在FilterInputStream
- 参数
-
n
- 要跳过的字节数。 - 结果
- 实际跳过的字节数。
- 异常
-
IOException
- 如果in.skip(n)
抛出一个IOException。
-
close
public void close() throws IOException
覆盖FilterInputStream.close
以关闭进度监视器以及流。- Specified by:
-
close
在接口AutoCloseable
- Specified by:
-
close
在接口Closeable
- 重写:
-
close
在FilterInputStream
- 异常
-
IOException
- 如果发生I / O错误。 - 另请参见:
-
FilterInputStream.in
-
reset
public void reset() throws IOException
覆盖FilterInputStream.reset
以重置进度监视器以及流。- 重写:
-
reset
类FilterInputStream
- 异常
-
IOException
- 如果流未被标记或标记已被无效。 - 另请参见:
-
FilterInputStream.in
,FilterInputStream.mark(int)
-
-