Java 从HttpServletRequest解析二进制数据

Java 从HttpServletRequest解析二进制数据,java,servlets,Java,Servlets,检索发布到Javaservlet的二进制数据的一般方法是什么?一个字节[]被发布到此servlet,我想我必须以某种方式解析HttpServletRequest.getInputStream()并提取字节[]内容。关于如何更改下面的代码以实现这一点,您有什么想法吗 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

检索发布到Javaservlet的二进制数据的一般方法是什么?一个字节[]被发布到此servlet,我想我必须以某种方式解析HttpServletRequest.getInputStream()并提取字节[]内容。关于如何更改下面的代码以实现这一点,您有什么想法吗

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        StringBuilder stringBuilder = new StringBuilder();
        BufferedReader bufferedReader = null;
        try {
          InputStream inputStream = request.getInputStream();
          if (inputStream != null) {
           bufferedReader = new BufferedReader(new InputStreamReader(
        inputStream));
           char[] charBuffer = new char[128];
           int bytesRead = -1;
           while ((bytesRead = bufferedReader.read(charBuffer)) > 0) {
            stringBuilder.append(charBuffer, 0, bytesRead);
           }
          } else {
           stringBuilder.append("");
          }
        } catch (IOException ex) {
          throw ex;
        } finally {
          if (bufferedReader != null) {
           try {
            bufferedReader.close();
           } catch (IOException ex) {
            throw ex;
           }
          }
        }
        String body = stringBuilder.toString();
        System.out.println(body);
}

不要将输入流包装在任何“读取器”中,因为它们会从字节转换为字符,而您需要字节。

是。扔掉所有的读卡器,使用第三行交给你的输入流。如果您不理解byte[]和InputStream之间的关系,我建议您阅读API文档和一些好的java教程