Servlets Servlet 3.1异步I/O。准备读取多少?

Servlets Servlet 3.1异步I/O。准备读取多少?,servlets,asynchronous,java-ee-7,Servlets,Asynchronous,Java Ee 7,对于异步读取,您可以执行以下操作: @WebServlet(urlPatterns="*.do", asyncSupported=true) public class TestServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse res) throws IOExcep

对于异步读取,您可以执行以下操作:

    @WebServlet(urlPatterns="*.do", asyncSupported=true)
    public class TestServlet
    extends HttpServlet {

        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse res)
        throws IOException, ServletException { 

            final AsyncContext aContext = req.startAsync();             
            final ServletInputStream input = req.getInputStream();

            ReadListener readListener = new ReadListener() {

                @Override
                public void onDataAvailable()
                throws IOException {
                    StringBuilder sb = new StringBuilder();
                    byte[] buffer = new byte[1024];
                    int read = -1;
/*   ------>   */   while (input.isReady() && (read = input.read(buffer)) != -1) {
                        sb.append(b, 0, read);
                    }
                }

                @Override
                public void onAllDataRead() {
                    aContext.complete();
                }

                @Override    
                public void onError(Throwable t) {
                    t.printStackTrace();
                    aContext.complete();
                }
            };

            input.setReadListener(readListener);
        }
    }
现在,方法
isReady()
如何知道要读取1024字节?如果准备的字节较少,则方法
read()
将被阻止?如果没有,我们为什么要求做好准备

多谢各位