パッケージ org.codelibs.nekohtml

クラス HTMLScanner.PlaybackInputStream

  • すべての実装されたインタフェース:
    java.io.Closeable, java.lang.AutoCloseable
    含まれているクラス:
    HTMLScanner

    public static class HTMLScanner.PlaybackInputStream
    extends java.io.FilterInputStream
    A playback input stream. This class has the ability to save the bytes read from the underlying input stream and play the bytes back later. This class is used by the HTML scanner to switch encodings when a <meta> tag is detected that specifies a different encoding.

    If the encoding is changed, then the scanner calls the playback method and re-scans the beginning of the HTML document again. This should not be too much of a performance problem because the <meta> tag appears at the beginning of the document.

    If the <body> tag is reached without playing back the bytes, then the buffer can be cleared by calling the clear method. This stops the buffering of bytes and allows the memory used by the buffer to be reclaimed.

    Note: If the buffer is never played back or cleared, this input stream will continue to buffer the entire stream. Therefore, it is very important to use this stream correctly.

    作成者:
    Andy Clark
    • フィールドの概要

      フィールド 
      修飾子とタイプ フィールド 説明
      protected byte[] fByteBuffer
      Byte buffer.
      protected int fByteLength
      Length of bytes read into byte buffer.
      protected int fByteOffset
      Offset into byte buffer during playback.
      protected boolean fCleared
      Buffer cleared.
      protected boolean fDetected
      Encoding detected.
      protected boolean fPlayback
      Playback mode.
      int fPushbackLength
      Pushback length.
      int fPushbackOffset
      Pushback offset.
      • クラスから継承されたフィールド java.io.FilterInputStream

        in
    • コンストラクタの概要

      コンストラクタ 
      コンストラクタ 説明
      PlaybackInputStream​(java.io.InputStream in)
      Constructor.
    • メソッドの概要

      すべてのメソッド インスタンス・メソッド concreteメソッド 
      修飾子とタイプ メソッド 説明
      void clear()
      Clears the buffer.
      void detectEncoding​(java.lang.String[] encodings)
      Detect encoding.
      void playback()
      Playback buffer contents.
      int read()
      Read a byte.
      int read​(byte[] array)
      Read an array of bytes.
      int read​(byte[] array, int offset, int length)
      Read an array of bytes.
      • クラスから継承されたメソッド java.io.FilterInputStream

        available, close, mark, markSupported, reset, skip
      • クラスから継承されたメソッド java.io.InputStream

        nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo
      • クラスから継承されたメソッド java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • フィールドの詳細

      • fPlayback

        protected boolean fPlayback
        Playback mode.
      • fCleared

        protected boolean fCleared
        Buffer cleared.
      • fDetected

        protected boolean fDetected
        Encoding detected.
      • fByteBuffer

        protected byte[] fByteBuffer
        Byte buffer.
      • fByteOffset

        protected int fByteOffset
        Offset into byte buffer during playback.
      • fByteLength

        protected int fByteLength
        Length of bytes read into byte buffer.
      • fPushbackOffset

        public int fPushbackOffset
        Pushback offset.
      • fPushbackLength

        public int fPushbackLength
        Pushback length.
    • コンストラクタの詳細

      • PlaybackInputStream

        public PlaybackInputStream​(java.io.InputStream in)
        Constructor.
    • メソッドの詳細

      • detectEncoding

        public void detectEncoding​(java.lang.String[] encodings)
                            throws java.io.IOException
        Detect encoding.
        例外:
        java.io.IOException
      • playback

        public void playback()
        Playback buffer contents.
      • clear

        public void clear()
        Clears the buffer.

        Note: The buffer cannot be cleared during playback. Therefore, calling this method during playback will not do anything. However, the buffer will be cleared automatically at the end of playback.

      • read

        public int read()
                 throws java.io.IOException
        Read a byte.
        オーバーライド:
        read クラス内 java.io.FilterInputStream
        例外:
        java.io.IOException
      • read

        public int read​(byte[] array)
                 throws java.io.IOException
        Read an array of bytes.
        オーバーライド:
        read クラス内 java.io.FilterInputStream
        例外:
        java.io.IOException
      • read

        public int read​(byte[] array,
                        int offset,
                        int length)
                 throws java.io.IOException
        Read an array of bytes.
        オーバーライド:
        read クラス内 java.io.FilterInputStream
        例外:
        java.io.IOException