Avatar ·

如何将InputStream读取为字符串(String)?

大家好!我刚开始学习Java,遇到了一个对我来说非常复杂的问题。我需要从InputStream(例如从文件或HTTP响应)读取数据,并将其转换为普通的String字符串。问题在于InputStream处理的是字节,而我需要的是文本。 以下是我的代码示例,它不起作用: ```java InputStream inputStream = new FileInputStream("file.txt"); String content = inputStream.read(); // 显然这是错误的 ``` 我明白`read()`方法只返回一个字节(int),而不是整个字符串。我尝试过使用`BufferedReader`和`InputStreamReader`,但仍然感到困惑。如何正确且高效地将整个InputStream读取为字符串?在Java 8+中有哪些最佳实践?提前感谢您的帮助! P.S. 我听说过try-with-resources,但不确定如何在这里应用。另外,读取后是否需要关闭流?流可能非常大,达到几兆字节。