Class StringSubstitutorReader

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, java.lang.Readable

    public class StringSubstitutorReader
    extends java.io.FilterReader
    A Reader that performs string substitution on a source Reader using a StringSubstitutor.

    Using this Reader avoids reading a whole file into memory as a String to perform string substitution, for example, when a Servlet filters a file to a client.

    This class is not thread-safe.

    Since:
    1.9
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int read()
      Reads a single character.
      int read​(char[] target, int targetIndexIn, int targetLengthIn)
      Reads characters into a portion of an array.
      • Methods inherited from class java.io.FilterReader

        close, mark, markSupported, ready, reset, skip
      • Methods inherited from class java.io.Reader

        nullReader, read, read, transferTo
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • StringSubstitutorReader

        public StringSubstitutorReader​(java.io.Reader reader,
                                       StringSubstitutor stringSubstitutor)
        Constructs a new instance.
        Parameters:
        reader - the underlying reader containing the template text known to the given StringSubstitutor.
        stringSubstitutor - How to replace as we read.
        Throws:
        java.lang.NullPointerException - if reader is null.
        java.lang.NullPointerException - if stringSubstitutor is null.
    • Method Detail

      • read

        public int read()
                 throws java.io.IOException
        Reads a single character.
        Overrides:
        read in class java.io.FilterReader
        Returns:
        a character as an int or -1 for end-of-stream.
        Throws:
        java.io.IOException - If an I/O error occurs
      • read

        public int read​(char[] target,
                        int targetIndexIn,
                        int targetLengthIn)
                 throws java.io.IOException
        Reads characters into a portion of an array.
        Overrides:
        read in class java.io.FilterReader
        Parameters:
        target - Target buffer.
        targetIndexIn - Index in the target at which to start storing characters.
        targetLengthIn - Maximum number of characters to read.
        Returns:
        The number of characters read, or -1 on end of stream.
        Throws:
        java.io.IOException - If an I/O error occurs