我有一个String[]
数组,我需要将其转换为InputStream
.
我见过Byte[]
->InputStream
和String
-> InputStream
,但不是这个。有小费吗?
我有一个String[]
数组,我需要将其转换为InputStream
.
我见过Byte[]
->InputStream
和String
-> InputStream
,但不是这个。有小费吗?
您可以构造一个合并String
的分隔符,然后是 to byte[]
,然后是 to ByteArrayInputStream
。
仍然没有单一的方法调用来执行此操作,但使用 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));
看看以下链接: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();