📜  Servlet – 输入流类

📅  最后修改于: 2022-05-13 01:55:38.807000             🧑  作者: Mango

Servlet – 输入流类

ServletInputStream 类是Java包javax.servlet 的一个组件,它是一个抽象类,它提供用于从客户端请求中读取二进制数据的输入流,包括用于一次读取一行数据的高效 readLine 方法。

句法:

public abstract class ServletInputStream extends InputStream

构造函数

ServletInputStream() 由于 ServletInputStream 是一个抽象类,因此它不能被初始化。

方法

ServletInputStream 只包含一个名为 readLine 的具体方法。

readLine(byte [ ] b, int offset, int len):

  1. 它是 ServletInputStream 类的一部分。
  2. 它用于读取输入流。
  3. 它将返回读取的字节数或-1。
  4. 如果发生输入或输出异常,它可能会抛出 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