将字符串转换为 InputStream 的Java程序
给定一个字符串,任务是将字符串转换为 InputStream,如下图所示。
插图:
Input : String : "Geeks for Geeks"
Output : Input Stream : Geeks for Geeks
Input : String : "A computer science portal"
Output : Input stream : A computer science portal
为了达到目标,我们需要使用 ByteArrayInputStream。那么让我们讨论一下它是如何完成的?
我们可以使用 ByteArrayInputStream 类将 String 转换为 InputStream 对象。 ByteArrayInputStream 是 InputStream 类中的一个子类。在 ByteArrayInputStream 中有一个内部缓冲区,其中包含从流中读取的字节。
方法:
- 获取字符串的字节。
- 使用字符串的字节创建一个新的 ByteArrayInputStream
- 将 ByteArrayInputStream 对象分配给 InputStream 变量。
- 缓冲区包含从流中读取的字节。
- 打印输入流。
例子:
Java
// Java Program to Convert String to InputStream
// Using ByteArrayInputStream
// Importing required libraries
import java.io.*;
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;
// Main class
public class GFG {
// main driver method
public static void main(String[] args) throws IOException {
// Custom inout string as an input
String string = "Geeks for Geeks";
// Printing the above string
System.out.print("String : " + string);
// Now, using ByteArrayInputStream to
// get the bytes of the string, and
// converting them to InputStream
InputStream stream = new ByteArrayInputStream(string.getBytes
(Charset.forName("UTF-8")));
// Creating an object of BufferedReader class to
// take input
BufferedReader br = new BufferedReader(new InputStreamReader(stream));
// Printing the input stream
// using rreadLine() method
String str = br.readLine();
System.out.print("\nInput stream : ");
// If string is not NULL
while (str != null) {
// Keep taking input
System.out.println(str);
str = br.readLine();
}
}
}
输出
String : Geeks for Geeks
Input stream : Geeks for Geeks