Module java.desktop
Package javax.swing

Class ProgressMonitorInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
javax.swing.ProgressMonitorInputStream
所有已实现的接口:
Closeable, AutoCloseable

public class ProgressMonitorInputStream extends FilterInputStream
监视从某个InputStream读取的进度。通常以大致以下形式调用ProgressMonitor:
 InputStream in = new BufferedInputStream(
                          new ProgressMonitorInputStream(
                                  parentComponent,
                                  "Reading " + fileName,
                                  new FileInputStream(fileName)));
 

这将创建一个进度监视器来监视读取输入流的进度。如果读取需要一段时间,将弹出一个ProgressDialog来通知用户。如果用户点击取消按钮,则在下一次读取时将抛出InterruptedIOException。当流关闭时,将执行所有正确的清理工作。

有关更多文档和示例,请参见如何监视进度,这是《Java教程》中的一节。

自版本:
1.2
另请参阅:
  • Constructor Details

    • ProgressMonitorInputStream

      public ProgressMonitorInputStream(Component parentComponent, Object message, InputStream in)
      构造一个对象来监视输入流的进度。
      参数:
      parentComponent - 触发正在监视的操作的组件。
      message - 如果弹出对话框,要放入其中的描述性文本。
      in - 要监视的输入流。
  • Method Details

    • getProgressMonitor

      public ProgressMonitor getProgressMonitor()
      获取此流使用的ProgressMonitor对象。通常不需要此操作,除非您想在读取文件的过程中更改描述性文本。
      返回:
      此对象使用的ProgressMonitor对象
    • read

      public int read() throws IOException
      重写FilterInputStream.read以在读取后更新进度监视器。
      重写:
      read 在类中 FilterInputStream
      返回:
      下一个数据字节,如果到达流的末尾,则为-1
      抛出:
      IOException - 如果发生I/O错误。
      另请参阅:
    • read

      public int read(byte[] b) throws IOException
      重写FilterInputStream.read以在读取后更新进度监视器。
      重写:
      read 在类中 FilterInputStream
      参数:
      b - 要读取数据的缓冲区。
      返回:
      读入缓冲区的总字节数,如果没有更多数据,因为已到达流的末尾,则为-1
      抛出:
      IOException - 如果发生I/O错误。
      另请参阅:
    • read

      public int read(byte[] b, int off, int len) throws IOException
      重写FilterInputStream.read以在读取后更新进度监视器。
      重写:
      read 在类中 FilterInputStream
      参数:
      b - 要读取数据的缓冲区。
      off - 写入数据的数组b中的起始偏移量。
      len - 要读取的最大字节数。
      返回:
      读入缓冲区的总字节数,如果没有更多数据,因为已到达流的末尾,则为-1
      抛出:
      IOException - 如果发生I/O错误。
      另请参阅:
    • 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以关闭进度监视器以及流。
      指定者:
      close 在接口中 AutoCloseable
      指定者:
      close 在接口中 Closeable
      重写:
      close 在类中 FilterInputStream
      抛出:
      IOException - 如果发生I/O错误。
      另请参阅:
    • reset

      public void reset() throws IOException
      重写FilterInputStream.reset以重置进度监视器以及流。
      重写:
      reset 在类中 FilterInputStream
      抛出:
      IOException - 如果此流未被标记或标记已失效。
      另请参阅: