从InputStream中读取文本
这个问题在这里已经有了答案:
取决于您所熟悉的许可证,这是雅加达共享IO库的一个班轮。
请指定字符编码。 不要浪费代码,引入错误,并用BufferedReader
缓慢执行。
这是一个例子。 你可以用缓冲区大小,编码等参数化它。
static String readString(InputStream is) throws IOException {
char[] buf = new char[2048];
Reader r = new InputStreamReader(is, "UTF-8");
StringBuilder s = new StringBuilder();
while (true) {
int n = r.read(buf);
if (n < 0)
break;
s.append(buf, 0, n);
}
return s.toString();
}
使用Commons-IO可能是最好的选择。 为了您的兴趣,另一种方法是复制所有字节,然后将其转换为字符串。
public static String readText(InputStream is, String charset) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] bytes = new byte[4096];
for(int len;(len = is.read(bytes))>0;)
baos.write(bytes, 0, len);
return new String(baos.toByteArray(), charset);
}
链接地址: http://www.djcxy.com/p/13725.html