Java提供了I / O流来读取和写入数据,其中,流表示输入源或输出目标,它可以是文件,I / O设备,其他程序等。
有两种类型的流可用-InputStream - 用于从源读取(顺序)数据。
OutputStream -用于将数据写入目标。
FileInputStream
此类从特定文件(逐字节)读取数据。它通常用于读取带有原始字节(例如图像)的文件的内容。
将InputStream对象转换为String
您可以使用核心Java以多种方式将InputStream Object int转换为String。为此,您也可以使用IOUtils,Guava等外部库。以下是在Java中将InputStream对象转换为String的一些方法(不包括外部库)。
使用BufferedReader
BufferedReader类的readLine()方法从当前阅读器的内容读取一行。使用此方法将InputStream Object int转换为String。通过将InputStream对象作为参数来实例化InputStreamReader类。
然后,通过将上面获得的InputStreamReader对象作为参数传递,从而创建BufferedReader。
现在,使用readLine()方法从该读取器读取每一行,并将其追加到StringBuffer对象。
最后使用toString()方法将StringBuffer转换为字符串。
Exampleimport 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的内容。 使用此方法将InputStream Object int转换为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的内容读取到给定的数组。使用此方法将InputStream Object int转换为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