当前位置: 首页 > 面试题库 >

从InputStream到servletInputStream

慕烨烁
2023-03-14
问题内容

我有这个InputStream:

InputStream inputStream = new ByteArrayInputStream(myString.getBytes(StandardCharsets.UTF_8));

如何将其转换为ServletInputStream?

我努力了:

ServletInputStream  servletInputStream = (ServletInputStream) inputStream;

但不起作用。

编辑:

我的方法是这样的:

private static class LowerCaseRequest extends HttpServletRequestWrapper {

        public LowerCaseRequest(final HttpServletRequest request) throws IOException, ServletException {
            super(request);
        }

        @Override
        public ServletInputStream getInputStream() throws IOException {

            ServletInputStream servletInputStream;

            StringBuilder jb = new StringBuilder();
            String line;
            String toLowerCase = "";

            BufferedReader reader = new BufferedReader(new InputStreamReader(super.getInputStream()));
            while ((line = reader.readLine()) != null) {
                toLowerCase = jb.append(line).toString().toLowerCase();
            }

            InputStream inputStream = new ByteArrayInputStream(toLowerCase.getBytes(StandardCharsets.UTF_8));

            servletInputStream = (ServletInputStream) inputStream;

            return servletInputStream;

        }
 }

我正在尝试将所有请求都转换为小写。


问题答案:

试试这个代码。

ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(myString.getBytes(StandardCharsets.UTF_8));
    ServletInputStream servletInputStream=new ServletInputStream(){
        public int read() throws IOException {
          return byteArrayInputStream.read();
        }
      }


 类似资料:
  • 问题内容: 我制作了一个Java函数,将a 作为输入。我有一个实例要传递给该函数。如何将其转换为? 我是否需要使用BLOB参数重新编写函数? 问题答案: 根据“映射数据类型”文档声明类型的Java参数。然后,您调用该对象以获得。

  • 问题内容: 我正在读取dds纹理,但是自从构建了jar之后,我无法通过访问这些纹理,而不得不使用它。 所以,我需要知道我怎么能获得从。 附言: 无论通过第3部分库,我都只需要它起作用 问题答案: 对我而言,在这种情况下最好的是Apache commons-io来处理此任务和类似任务。 该类型具有静态方法来读取和返回。 在内部,这会创建一个并将字节复制到输出,然后调用。 UPDATE :只要你有,如

  • 我正在使用PDFBox从我的pdf(只包含JPG的)中提取图像。 因为我将把这些图像保存在我的数据库中,所以我想先把每个图像直接转换成一个inputstream对象,而不把文件临时放在我的文件系统上。然而,我在这方面遇到了困难。我认为这是因为使用了,就像我在下面的示例中所做的那样: 然而,这是可行的: 知道我如何将每个PDXObjectImage(或我能得到的任何其他对象)转换为InputStre

  • 问题内容: 我的数据库表中有一个blob列,必须在Java程序中将其用作映射,并使用此数据将其转换为或。但是我不知道这样做的时候内部会发生什么。有人能简要解释一下我进行此转换时发生了什么吗? 问题答案: 您可以按以下方式创建和使用字节数组I / O流: 假设你正在使用JDBC驱动程序实现了标准的JDBC Blob接口 (不是所有的事),你可以 同时 连接或使用到BLOB 和方法1,您也可以获取和设

  • 问题内容: 我可以使用ClassLoader实现从InputStream加载类吗? 我正在尝试将具有InputStream的JAR加载到新的ClassLoader中。 问题答案: 这不太可能,因为您会发现自己尝试这样做。您将无法根据需要随机访问和查找类,因此您必须将内容缓存在内存或文件系统中。 如果您在磁盘上缓存,则只需使用URLClassLoader即可。 如果缓存在内存中,则需要使用JarIn

  • 更新:我发现了一个关键部分,解释了为什么这可能不起作用!我使用了这个系统。放样(out);其中out是到JTextArea的特殊打印流 这是代码,但我遇到的问题是,信息只有在我结束流程后才会打印出来。 电流输出: 这是正确的输出,但是当我结束这个过程时,它只是作为一个大块打印。 有人知道问题是什么吗?如果是的话,你能帮我解释一下为什么会这样吗,提前谢谢你。