将字符串转换为 InputStream 的 Java 程序
在显示较长的输入字符串时,有时需要以较小的单位处理它们。此时,将该字符串转换为 InputStream 会很有帮助。为了将给定的字符串转换为 InputStream,Java 提供了 ByteArrayInputStream 类,该类与名为 getBytes() 的内置方法一起使用。在本文中,我们将学习如何在示例程序的帮助下使用 ByteArrayInputStream 类将字符串转换为 InputStream。
将字符串转换为 InputStream 的 Java 程序
本节将介绍一些概念,这些概念将有助于我们理解用于将字符串转换为 InputStream 的 Java 程序。
InputStream
Stream 是在 Java 中执行输入和输出操作时使用的抽象。流有两个基本术语,即 InputStream 类,用于从键盘、磁盘文件等来源获取输入。OutputStream 类是指显示或写入数据的目的地。
BufferedReader 类
由于 InputStream 类是一个抽象类,我们需要使用它的子类来实现它的功能。其中一个子类是 BufferedReader,用于从本地文件和键盘等输入流读取字符。要使用 BufferedReader 读取字符串,我们需要创建 InputStream 类的实例并将其作为参数传递给 BufferedReader 的构造函数。
语法
BufferedReader nameOfObject = new BufferedReader(objectOfStream);
getBytes() 方法
它是 String 类的内置方法,用于将字符串编码为字节数组。它可以采用可选参数来指定字符编码。如果我们不传递任何字符集,它将使用默认字符集。
此外,我们将此字节数组作为参数传递给 ByteArrayInputStream,并将其分配给 InputStream 类的实例,以便我们可以将字符串转换为 InputStream。
示例 1
以下 Java 程序演示了如何将字符串转换为 InputStream。
方法
首先,初始化一个字符串。
然后,使用 getBytes() 方法以及 ByteArrayInputStream 类将指定的字符串转换为具有默认字符集的字节数组,并将该数组分配给 InputStream。
接下来,使用 BufferedReader 类读取流。
最后,使用 while 循环运行直到流的内容不等于"null"并打印流。
import java.io.*; public class Example1 { public static void main(String[] args) throws IOException { try { // 初始化字符串 String inputString = "Hello! this is Tutorials Point!!"; // 将字符串转换为 InputStream InputStream streamIn = new ByteArrayInputStream(inputString.getBytes()); // 创建 BufferedReader 的实例 BufferedReader bufrd = new BufferedReader(new InputStreamReader(streamIn)); // 新建字符串以存储原始字符串 String info = null; // 循环打印结果 while ((info = bufrd.readLine()) != null) { System.out.println(info); } } catch(Exception exp) { // 如果发生异常则处理 System.out.println(exp); } } }
输出
Hello! this is Tutorials Point!!
示例 2
如前所述,我们可以传递一个可选参数来指定字节数组的字符编码。在下面的 Java 程序中,我们将把"UTF-8"作为参数传递给 getBytes() 方法。
import java.io.*; public class Example2 { public static void main(String[] args) throws IOException { // 初始化字符串 String inputString = "Hello! this is Tutorials Point!!"; // 将字符串转换为 InputStream InputStream streamIn = new ByteArrayInputStream(inputString.getBytes("UTF-8")); // 创建 BufferedReader 的实例 BufferedReader bufrd = new BufferedReader(new InputStreamReader(streamIn)); // 新建字符串以存储原始字符串 String info = null; // 循环打印结果 while ((info = bufrd.readLine()) != null) { System.out.println(info); } } }
输出
Hello! this is Tutorials Point!!
结论
在本文中,我们学习了如何在 Java 中将给定的字符串转换为 InputStream。为此,我们讨论了两个使用 ByteArrayInputStream 类、BufferedReader 类和 getBytes() 方法的 Java 程序。使用 getBytes() 方法和 ByteArrayInputStream,我们能够将字符串转换为整数,并在 BufferedReader 类的帮助下读取该流。