Module  java.desktop
软件包  javax.swing

Class ProgressMonitorInputStream

  • All Implemented Interfaces:
    CloseableAutoCloseable


    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
    另请参见:
    ProgressMonitorJOptionPane
    • 构造方法详细信息

      • ProgressMonitorInputStream

        public ProgressMonitorInputStream​(Component parentComponent,
                                          Object message,
                                          InputStream in)
        构造一个对象来监视输入流的进度。
        参数
        message - 如果弹出对话框中放置的描述性文本。
        parentComponent - 触发被监视操作的组件。
        in - 要监视的输入流。
    • 方法详细信息

      • getProgressMonitor

        public ProgressMonitor getProgressMonitor​()
        获取此流所使用的ProgressMonitor对象。 通常这是不需要的,除非你想通过阅读文件来做某些改变描述性文本的东西。
        结果
        该对象使用的ProgressMonitor对象
      • read

        public int read​(byte[] b)
                 throws IOException
        覆盖 FilterInputStream.read以便在读取后更新进度监视器。
        重写:
        readFilterInputStream
        参数
        b - 读取数据的缓冲区。
        结果
        读取到缓冲区中的总字节数,如果没有更多的数据,因为已经到达流的末尾,那么 -1
        异常
        IOException - 如果发生I / O错误。
        另请参见:
        FilterInputStream.read(byte[], int, int)
      • read

        public int read​(byte[] b,
                        int off,
                        int len)
                 throws IOException
        覆盖 FilterInputStream.read以便在读取后更新进度监视器。
        重写:
        readFilterInputStream
        参数
        b - 读取数据的缓冲区。
        off - 目标数组 b的起始偏移量
        len - 读取的最大字节数。
        结果
        读取到缓冲区的总字节数,如果没有更多的数据,因为已经到达流的末尾,这个字节是 -1
        异常
        IOException - 如果发生I / O错误。
        另请参见:
        FilterInputStream.in
      • skip

        public long skip​(long n)
                  throws IOException
        覆盖 FilterInputStream.skip以在跳过后更新进度监视器。
        重写:
        skipFilterInputStream
        参数
        n - 要跳过的字节数。
        结果
        实际跳过的字节数。
        异常
        IOException - 如果 in.skip(n)抛出一个IOException。