java输入流和字符串互相转换
Java中,可以使用输入流和字符串之间进行相互转换。这在处理文件读写、网络传输等场景中非常常见。下面将详细介绍如何进行输入流和字符串的互相转换。
将输入流转换为字符串
当我们从文件或网络中读取数据时,通常会得到一个输入流。要将输入流转换为字符串,可以使用Java提供的BufferedReader类和StringBuilder类。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class InputStreamToString {
public static String convertToString(InputStream inputStream) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
reader.close();
return stringBuilder.toString();
}
上述代码中,我们创建了一个BufferedReader对象,用于逐行读取输入流中的数据。然后,我们使用StringBuilder来拼接每行数据,最后将其转换为字符串并返回。
将字符串转换为输入流
有时候,我们需要将字符串转换为输入流,以便进行文件写入或网络传输。Java中可以使用ByteArrayInputStream类来实现这个功能。
import java.io.ByteArrayInputStream;
import java.io.InputStream;
public class StringToInputStream {
public static InputStream convertToInputStream(String str) {
byte[] bytes = str.getBytes();
return new ByteArrayInputStream(bytes);
}
上述代码中,我们首先将字符串转换为字节数组,然后使用ByteArrayInputStream将字节数组包装成输入流,并返回该输入流。
这样,我们就可以方便地在输入流和字符串之间进行转换了。
Java中,可以使用BufferedReader和StringBuilder将输入流转换为字符串,使用ByteArrayInputStream将字符串转换为输入流。这些转换操作在文件读写、网络传输等场景中非常有用。
千锋教育拥有多年IT培训服务经验,提供专业的Java培训、web前端培训、大数据培训,python培训等课程,采用全程面授高品质、高体验教学模式,拥有国内一体化教学管理及学员服务,想获取更多IT技术干货请关注千锋教育IT培训机构官网。