如何在 Java 中将 String[] 数组转换为 InputStream
Posted
技术标签:
【中文标题】如何在 Java 中将 String[] 数组转换为 InputStream【英文标题】:How to convert a String[] array to InputStream in Java 【发布时间】:2013-09-27 19:00:54 【问题描述】:我有一个String[]
数组,我需要将它转换为InputStream
。
我见过 Byte[]
-> InputStream
和 String
-> InputStream
,但不是这个。有什么建议吗?
【问题讨论】:
一个InputStream是什么?划界?长度前缀? 一个 InputStream 是用于二进制的,也许您想要一个用于文本的 Reader? 其实两个都行,但是我随意选择了问InputStream。 【参考方案1】:你可以用一些分隔符构造一个合并的String
,然后到byte[]
,然后到ByteArrayInputStream
。
这是convert a String to InputStream in Java的方法。
【讨论】:
是的......这就是我要走的路......用我的字符串数组压缩一个换行符数组并加入一个字符串......但我希望有一个更直接的路线。【参考方案2】:仍然没有单一的方法调用来执行此操作,但使用 Java 8,您可以在一行代码中完成。给定一个字符串对象数组:
String[] strings = "string1", "string2", "string3";
您可以使用以下方法将 String 数组转换为 InputStream:
InputStream inputStream = new ByteArrayInputStream(String.join(System.lineSeparator(), Arrays.asList(strings)).getBytes(StandardCharsets.UTF_8));
【讨论】:
【参考方案3】:看看下面的链接: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();
【讨论】:
以上是关于如何在 Java 中将 String[] 数组转换为 InputStream的主要内容,如果未能解决你的问题,请参考以下文章
如何在java中将字节数组转换为hexString? [复制]