ServletInputStream class is a component of Java package javax.servlet, It is an abstract class that provides an input stream for reading binary data from a client request, including an efficient readLine method for reading data one line at a time.
Syntax:
public abstract class ServletInputStream extends InputStream
Constructor
ServletInputStream() : Since ServletInputStream is an abstract class therefore it cannot be initialized.
Note : ServletRequest.getInputStream() method is used to get the reference of ServletInputStream.
Methods
ServletInputStream contains only one concrete method named as readLine.
readLine(byte [ ] b, int offset, int len):
- It is a part of ServletInputStream class.
 - It is used to read the input stream.
 - It will return a number of bytes read or -1.
 - It might throw IOException if an input or output exception occurs.
 
Method Signature:
public int readLine(byte[] b, int offset,int len) throws IOException.
Method Parameters: readLine() method has three parameters which are byte, int, and int type.
Method Return Type: readLine() method has an int return type and will return a number of bytes read or -1 if the end of the stream is reached.
Abstract Methods of ServletInputStream
| 
 S.No.  | 
 Method  | 
 Description  | 
 Return Type  | 
|---|---|---|---|
| 1. | isFinished() | isFinished() method will return true if all the data from the stream has been read otherwise it will return false. | abstract boolean | 
| 2. | isReady() | isReady() method will return true if the data from the stream can be read without blocking otherwise it will return false. | abstract boolean | 
| 3. | setReadListener(ReadListener readListener) | 
 setReadListener method is used to instruct the ServletInputStream to invoke the provided ReadListener when it is possible to read.  | 
abstract void | 
Interfaces Implemented by ServletInputStream
- java.io.Closeable .
 - java.lang.AutoCloseable .
 
Java Program to Create a Servlet and to Check if Data of the Stream can be Read:
Java
import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class GeeksForGeeks extends HttpServlet {    public void doGet(HttpServletRequest request,                      HttpServletResponse response)             {        try {            ServletInputStream servletInputStream                = request.getInpuStream();            System.out.println(                "Data of stream can be read : "                + servletInputStream.isReady());        }        catch (Exception e) {            System.out.println(e.getMessage());        }    }    public void doPost(HttpServletRequest request,                       HttpServletResponse response)    {        doGet();    }} | 
Output:
true
Note: The above code will not run on online IDE since this is server-side code.
