1

我有一个String[]数组,我需要将其转换为InputStream.

我见过Byte[]->InputStreamString-> InputStream,但不是这个。有小费吗?

4

3 回答 3

5

您可以构造一个合并String的分隔符,然后是 to byte[],然后是 to ByteArrayInputStream

这是一种在 Java 中将 String 转换为 InputStream 的方法。

于 2013-09-22T23:30:58.573 回答
3

仍然没有单一的方法调用来执行此操作,但使用 Java 8,您可以在一行代码中完成。给定一个 String 对象数组:

    String[] strings = {"string1", "string2", "string3"};

您可以使用以下方法将 String 数组转换为 InputStream:

    InputStream inputStream = new ByteArrayInputStream(String.join(System.lineSeparator(), Arrays.asList(strings)).getBytes(StandardCharsets.UTF_8));
于 2020-04-14T06:16:58.910 回答
2

看看以下链接:http ://www.mkyong.com/java/how-to-convert-string-to-inputstream-in-java/

但是,代码的不同之处在于,您应该在转换之前将所有字符串连接到一个字符串中。

 String concatenatedString = ... convert your array

        // convert String into InputStream
        InputStream is = new ByteArrayInputStream(str.getBytes());

        // read it with BufferedReader
        BufferedReader br = new BufferedReader(new InputStreamReader(is));

        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }

        br.close();
于 2013-09-22T23:32:35.480 回答