# Class StringBufferInputStream

java.lang.Object
java.io.InputStream
java.io.StringBufferInputStream

All Implemented Interfaces:
  `Closeable, AutoCloseable`

@Deprecated public class StringBufferInputStream extends InputStream
Deprecated.
This class does not properly convert characters into bytes. As of JDK 1.1, the preferred way to create a stream from a string is via the `StringReader` class.
This class allows an application to create an input stream in which the bytes read are supplied by the contents of a string. Applications can also read bytes from a byte array by using a `ByteArrayInputStream`.

Only the low eight bits of each character in the string are used by this class.

Since:
  1.0
See Also:
  - `ByteArrayInputStream`
  - `StringReader`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected String`
  `buffer`
  Deprecated.
  The string from which bytes are read.
  `protected int`
  `count`
  Deprecated.
  The number of valid characters in the input stream buffer.
  `protected int`
  `pos`
  Deprecated.
  The index of the next character to read from the input stream buffer.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `StringBufferInputStream(String s)`
  Deprecated.
  Creates a string input stream to read data from the specified string.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `available()`
  Deprecated.
  Returns the number of bytes that can be read from the input stream without blocking.
  `int`
  `read()`
  Deprecated.
  Reads the next byte of data from this input stream.
  `int`
  `read(byte[] b, int off, int len)`
  Deprecated.
  Reads up to `len` bytes of data from this input stream into an array of bytes.
  `void`
  `reset()`
  Deprecated.
  Resets the input stream to begin reading from the first character of this input stream's underlying buffer.
  `long`
  `skip(long n)`
  Deprecated.
  Skips `n` bytes of input from this input stream.

  ### Methods declared in class InputStream

  `close, mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo`
  Modifier and Type
  Method
  Description
  `void`
  `close()`
  Closes this input stream and releases any system resources associated with the stream.
  `void`
  `mark(int readlimit)`
  Marks the current position in this input stream.
  `boolean`
  `markSupported()`
  Tests if this input stream supports the `mark` and `reset` methods.
  `static InputStream`
  `nullInputStream()`
  Returns a new `InputStream` that reads no bytes.
  `int`
  `read(byte[] b)`
  Reads some number of bytes from the input stream and stores them into the buffer array `b`.
  `byte[]`
  `readAllBytes()`
  Reads all remaining bytes from the input stream.
  `int`
  `readNBytes(byte[] b, int off, int len)`
  Reads the requested number of bytes from the input stream into the given byte array.
  `byte[]`
  `readNBytes(int len)`
  Reads up to a specified number of bytes from the input stream.
  `void`
  `skipNBytes(long n)`
  Skips over and discards exactly `n` bytes of data from this input stream.
  `long`
  `transferTo(OutputStream out)`
  Reads all bytes from this input stream and writes the bytes to the given output stream in the order that they are read.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Field Details

  - ### buffer

    protected String buffer
    Deprecated.
    The string from which bytes are read.

  - ### pos

    protected int pos
    Deprecated.
    The index of the next character to read from the input stream buffer.
    See Also:
      - `buffer`

  - ### count

    protected int count
    Deprecated.
    The number of valid characters in the input stream buffer.
    See Also:
      - `buffer`

- ## Constructor Details

  - ### StringBufferInputStream

    public StringBufferInputStream(String s)
    Deprecated.
    Creates a string input stream to read data from the specified string.
    Parameters:
      `s` - the underlying input buffer.

- ## Method Details

  - ### read

    public int read()
    Deprecated.
    Reads the next byte of data from this input stream. The value byte is returned as an `int` in the range `0` to `255`. If no byte is available because the end of the stream has been reached, the value `-1` is returned.
    Specified by:
      `read` in class `InputStream`
    Implementation Requirements:
      The `read` method of `StringBufferInputStream` cannot block. It returns the low eight bits of the next character in this input stream's buffer.
    Returns:
      the next byte of data, or `-1` if the end of the stream is reached.

  - ### read

    public int read(byte[] b, int off, int len)
    Deprecated.
    Reads up to `len` bytes of data from this input stream into an array of bytes.
    Overrides:
      `read` in class `InputStream`
    Implementation Requirements:
      The `read` method of `StringBufferInputStream` cannot block. It copies the low eight bits from the characters in this input stream's buffer into the byte array argument.
    Parameters:
      `b` - the buffer into which the data is read.
      `off` - the start offset in array `b` at which the data is written.
      `len` - the maximum number of bytes to read.
    Returns:
      the total number of bytes read into the buffer, or `-1` if there is no more data because the end of the stream has been reached.
    See Also:
      - `InputStream.read()`

  - ### skip

    public long skip(long n)
    Deprecated.
    Skips `n` bytes of input from this input stream. Fewer bytes might be skipped if the end of the input stream is reached.
    Overrides:
      `skip` in class `InputStream`
    Parameters:
      `n` - the number of bytes to be skipped.
    Returns:
      the actual number of bytes skipped.
    See Also:
      - `InputStream.skipNBytes(long)`

  - ### available

    public int available()
    Deprecated.
    Returns the number of bytes that can be read from the input stream without blocking.
    Overrides:
      `available` in class `InputStream`
    Returns:
      the value of `count - pos`, which is the number of bytes remaining to be read from the input buffer.

  - ### reset

    public void reset()
    Deprecated.
    Resets the input stream to begin reading from the first character of this input stream's underlying buffer.
    Overrides:
      `reset` in class `InputStream`
    See Also:
      - `InputStream.mark(int)`
      - `IOException`