Class Latin1Reader

java.lang.Object
java.io.Reader
com.fasterxml.jackson.dataformat.javaprop.io.Latin1Reader
All Implemented Interfaces:
Closeable, AutoCloseable, Readable

public final class Latin1Reader extends Reader
Optimized Reader that reads ISO-8859-1 encoded content from an input stream. The reason for custom implementation is that this allows recycling of underlying read buffer, which is important for small content.
  • Field Details

    • _ioContext

      private final com.fasterxml.jackson.core.io.IOContext _ioContext
      IO context to use for returning input buffer, iff buffer is to be recycled when input ends.
    • _inputSource

      private InputStream _inputSource
    • _inputBuffer

      private byte[] _inputBuffer
    • _inputPtr

      private int _inputPtr
      Pointer to the next available byte (if any), iff less than mByteBufferEnd
    • _inputEnd

      private int _inputEnd
      Pointed to the end marker, that is, position one after the last valid available byte.
    • _charCount

      private int _charCount
      Total read character count; used for error reporting purposes
    • _tmpBuffer

      private char[] _tmpBuffer
  • Constructor Details

    • Latin1Reader

      public Latin1Reader(byte[] buf, int ptr, int len)
    • Latin1Reader

      public Latin1Reader(com.fasterxml.jackson.core.io.IOContext ctxt, InputStream in)
  • Method Details

    • getReadCharsCount

      public int getReadCharsCount()
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in class Reader
      Throws:
      IOException
    • read

      public int read() throws IOException
      Overrides:
      read in class Reader
      Throws:
      IOException
    • read

      public int read(char[] cbuf) throws IOException
      Overrides:
      read in class Reader
      Throws:
      IOException
    • read

      public int read(char[] cbuf, int start, int len) throws IOException
      Specified by:
      read in class Reader
      Throws:
      IOException
    • loadMore

      private boolean loadMore() throws IOException
      Returns:
      True, if enough bytes were read to allow decoding of at least one full character; false if EOF was encountered instead.
      Throws:
      IOException
    • freeBuffers

      private final void freeBuffers()
      This method should be called along with (or instead of) normal close. After calling this method, no further reads should be tried. Method will try to recycle read buffers (if any).