将字符串转换为 InputStream 的 Java 程序

javaobject oriented programmingprogramming更新于 2024/8/6 18:14:00

在显示较长的输入字符串时,有时需要以较小的单位处理它们。此时,将该字符串转换为 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 类的帮助下读取该流。


相关文章