Java String到InputStream
时间:2020-02-23 14:34:33 来源:igfitidea点击:
今天,我们将研究如何在Java中将String转换为InputStream。
最近,我写了一篇文章将InputStream转换为String。
Java String到InputStream
我曾用两种方法将String转换为InputStream。
- Java IO ByteArrayInputStream类
- Apache Commons IO IOUtils类
让我们看一下使用这些类的示例程序。
使用ByteArrayInputStream将Java字符串转换为InputStream
import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.Charset; public class StringToInputStreamUsingByteArrayInputStream { public static void main(String[] args) throws IOException { String str = "convert String to Input Stream Example using ByteArrayInputStream"; //convert using ByteArrayInputStream InputStream is = new ByteArrayInputStream(str.getBytes(Charset.forName("UTF-8"))); //print it to console BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line = br.readLine(); while (line != null) { System.out.println(line); line = br.readLine(); } } }
使用Apache Commons IOUtils将字符串转换为InputStream
import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; import org.apache.commons.io.IOUtils; public class StringToInputStreamUsingIOUtils { public static void main(String[] args) throws IOException { String str = "Example using Apache Commons IO class IOUtils"; InputStream stream = IOUtils.toInputStream(str, Charset.forName("UTF-8")); stream.close(); } }
如果您已经在使用Apache Commons IO jar,则可以使用IOUtils
,否则没有任何好处,因为它在内部使用ByteArrayInputStream类。
以下是来自IOUtils类源代码的toInputStream方法实现。
public static InputStream toInputStream(final String input, final Charset encoding) { return new ByteArrayInputStream(input.getBytes(Charsets.toCharset(encoding))); }