Java:访问字符串列表作为 InputStream

标签 java java-io

有什么方法可以InputStream 包装UTF-8 String 列表吗?我想做类似的事情:

InputStream in = new XyzInputStream( List<String> lines )

最佳答案

您可以从 ByteArrayOutputStream 中读取,您可以使用 ByteArrayInputStream 创建源 byte[] 数组。

所以创建数组如下:

 List<String> source = new ArrayList<String>();
 source.add("one");
 source.add("two");
 source.add("three");
 ByteArrayOutputStream baos = new ByteArrayOutputStream();

 for (String line : source) {
   baos.write(line.getBytes());
 }

 byte[] bytes = baos.toByteArray();

读取它非常简单:

 InputStream in = new ByteArrayInputStream(bytes);

或者,根据您要执行的操作,StringReader可能会更好。

关于Java:访问字符串列表作为 InputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9837754/

相关文章:

java - 如何更改 Szymon 类中标签(在 Window 类中)的值并将其显示在窗口中?

java - 为什么Spring Security需要对权限集合进行排序?

java - Java中如何获取当前工作目录?

java - myFile.isFile() 或 myFile.isDirectory() 是否有可能的第三种类型的功能?

java - 如何在tomcat文件夹中写入文件?

java - 使用 Spring 授权标记检查用户是否登录时出错?

java - iText PDF 文档无法打开 : java. io.IOException : No message found for the. document.has.no.pages

java - 如何返回和删除文件?

java - 数组的排列

java - StreamCorruptedException 与 ObjectInputStream 和 ByteArrayInputStream