假设我有一个包含文本数据的InputStream
,并且我想将其转换为String
(例如,这样我就可以将流的内容写入日志文件)。
将InputStream
转换为String
的最简单方法是什么
public String convertStreamToString(InputStream is) {
// ???
}
发布于 2009-11-19 14:55:55
这是我的版本
public static String readString(InputStream inputStream) throws IOException {
ByteArrayOutputStream into = new ByteArrayOutputStream();
byte[] buf = new byte[4096];
for (int n; 0 < (n = inputStream.read(buf));) {
into.write(buf, 0, n);
}
into.close();
return new String(into.toByteArray(), "UTF-8"); // Or whatever encoding
}
发布于 2009-11-19 14:53:11
如果您想简单可靠地完成这项工作,我建议使用Apache Jakarta Commons IO库IOUtils.toString(java.io.InputStream, java.lang.String)
方法。
发布于 2010-07-17 13:14:11
String text = new Scanner(inputStream).useDelimiter("\\A").next();
唯一的技巧是记住正则表达式
\A
__,它匹配输入的开头。这有效地告诉Scanner
标记整个流,从开始到(不合逻辑的)下一个开始...-从
https://stackoverflow.com/questions/1763789
复制