如何在Java中读取InputStream并将其转换为字符串?
大家好!我是Java新手,遇到了这样一个任务:我有一个`InputStream`对象,例如在读取文件或网络请求时获取的。我需要将这个流的内容转换为普通的`String`字符串,以便后续处理文本。
问题是我不知道如何正确实现。我尝试手动读取字节,但代码变得冗长且可能不正确。以下是我的尝试:
```java
InputStream inputStream = new FileInputStream("file.txt");
StringBuilder sb = new StringBuilder();
int data = inputStream.read();
while (data != -1) {
sb.append((char) data);
data = inputStream.read();
}
inputStream.close();
String result = sb.toString();
```
这段代码能工作,但我确信有更优雅的解决方案。首先,它没有考虑字符编码。其次,在大文件上会变慢,因为它是逐字节读取的。第三,我听说Java 9及以上版本引入了新方法,但我不知道具体是什么。