Servlet – 输入流类
ServletInputStream 类是Java包javax.servlet 的一个组件,它是一个抽象类,它提供用于从客户端请求中读取二进制数据的输入流,包括用于一次读取一行数据的高效 readLine 方法。
句法:
public abstract class ServletInputStream extends InputStream
构造函数
ServletInputStream() :由于 ServletInputStream 是一个抽象类,因此它不能被初始化。
Note : ServletRequest.getInputStream() method is used to get the reference of ServletInputStream.
方法
ServletInputStream 只包含一个名为 readLine 的具体方法。
readLine(byte [ ] b, int offset, int len):
- 它是 ServletInputStream 类的一部分。
- 它用于读取输入流。
- 它将返回读取的字节数或-1。
- 如果发生输入或输出异常,它可能会抛出 IOException。
方法签名:
public int readLine(byte[] b, int offset,int len) throws IOException.
方法参数: readLine() 方法有 byte、int 和 int 类型三个参数。
方法返回类型: readLine() 方法有一个 int 返回类型,如果到达流的末尾,将返回读取的字节数或 -1。
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 |
ServletInputStream 实现的接口
- Java.io.Closeable 。
- Java.lang.AutoCloseable 。
用于创建 Servlet 并检查是否可以读取流数据的Java程序:
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();
}
}
输出:
true
Note: The above code will not run on online IDE since this is server-side code.