Java: accessing a List of Strings as an InputStream
You can concatenate all the lines together to create a String then convert it to a byte array using String#getBytes
and pass it into ByteArrayInputStream. However this is not the most efficient way of doing it.
You can read from a ByteArrayOutputStream
and you can create your source byte[]
array using a ByteArrayInputStream
.
So create the array as follows:
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();
And reading from it is as simple as:
InputStream in = new ByteArrayInputStream(bytes);
Alternatively, depending on what you're trying to do, a StringReader
might be better.