Java中将InputStream对象转换为字符串
Java提供了I/O流来读取和写入数据,其中,流表示输入源或输出目标,它可以是文件,I/O设备,其他程序等。
有两种类型的流可用-
InputStream-用于从源读取(顺序)数据。
OutputStream-用于将数据写入目标。
FileInputStream
此类从特定文件(逐字节)读取数据。它通常用于读取带有原始字节(例如图像)的文件的内容。
将InputStream对象转换为String
您可以使用核心Java以多种方式将InputStreamObjectint转换为String。为此,您也可以使用IOUtils,Guava等外部库。以下是在Java中将InputStream对象转换为String的一些方法(不包括外部库)。
使用BufferedReader
BufferedReader类的readLine()方法从当前阅读器的内容读取一行。使用此方法将InputStreamObjectint转换为String。
通过将InputStream对象作为参数来实例化InputStreamReader类。
然后,通过将上面获得的InputStreamReader对象作为参数传递,从而创建BufferedReader。
Example
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class InputStreamToString{
public static void main(String args[]) throws IOException {
//创建一个InputStream对象
InputStream inputStream = new FileInputStream("D:/sample.txt");
//创建InputStreamReader对象
InputStreamReader isReader = new InputStreamReader(inputStream);
//创建BufferedReader对象
BufferedReader reader = new BufferedReader(isReader);
StringBuffer sb = new StringBuffer();
String str;
while((str = reader.readLine())!= null){
sb.append(str);
}
System.out.println(sb.toString());
}
}Output
他们更愿意在舒适的客厅里按照自己的节奏学习新技能。 欢迎来到 https://www.nhooo.com
使用Scanner类
Scanner类的nextLine()方法逐行读取基础inputStream的内容。使用此方法将InputStreamObjectint转换为String。
通过将InputStream对象作为参数传递来实例化Scanner类。
使用nextLine()方法从该扫描器读取每一行,并将其追加到StringBuffer对象。
最后,使用toString()方法将StringBuffer转换为String。
示例
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;
public class InputStreamToString {
public static void main(String args[]) throws IOException {
//创建InputStream对象
InputStream inputStream = new FileInputStream("D:/sample.txt");
//创建扫描器对象
Scanner sc = new Scanner(inputStream);
//从Scanner到StringBuffer逐行读取
StringBuffer sb = new StringBuffer();
while(sc.hasNext()){
sb.append(sc.nextLine());
}
System.out.println(sb.toString());
}
}Output
他们更愿意在舒适的客厅里按照自己的节奏学习新技能。 欢迎来到 https://www.nhooo.com
使用InputStreamReader类
InputStreamReader 类的read()方法接受一个字符数组作为参数,并将当前Stream的内容读取到给定的数组。使用此方法将InputStreamObjectint转换为String。
通过将InputStream对象作为参数来实例化InputStreamReader类。
使用InputStreamReader类的read()方法将当前流读取器的内容读取到字符数组。
最后,通过将字符作为参数传递给其构造函数,将字符转换为String。
例子
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class FileInputStreamExample {
public static void main(String args[]) throws IOException {
//Creating a File object
File file = new File("D:/sample.txt");
//Creating an InputStream object
InputStream inputStream = new FileInputStream(file);
//creating an InputStreamReader object
InputStreamReader isReader = new InputStreamReader(inputStream);
//Creating a character array
char charArray[] = new char[(int) file.length()];
//Reading the contents of the reader
isReader.read(charArray);
//Converting character array to a String
String contents = new String(charArray);
System.out.println(contents);
}
}输出量
他们更愿意在舒适的客厅里按照自己的节奏学习新技能。 欢迎来到 https://www.nhooo.com