java读取InputStream文本内容的几种方式,javainputstream,第一种方式:只使用jav
分享于 点击 29898 次 点评:31
java读取InputStream文本内容的几种方式,javainputstream,第一种方式:只使用jav
第一种方式:只使用java的标准库,使用java.util.Scanner
类
public static String convertStreamToString(java.io.InputStream is) { java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A"); return s.hasNext() ? s.next() : "";}
第二种方式:使用java.io.Reader
和StringBuilder
public static String slurp(final InputStream is, final int bufferSize){ final char[] buffer = new char[bufferSize]; final StringBuilder out = new StringBuilder(); try { final Reader in = new InputStreamReader(is, "UTF-8"); try { for (;;) { int rsz = in.read(buffer, 0, buffer.length); if (rsz < 0) break; out.append(buffer, 0, rsz); } } finally { in.close(); } } catch (UnsupportedEncodingException ex) { /* ... */ } catch (IOException ex) { /* ... */ } return out.toString();}
第三种方式: 借助于apache commons的IOUtils
类将InputStream复制到StingReader中:
StringWriter writer = new StringWriter();IOUtils.copy(inputStream, writer, encoding);String theString = writer.toString();
用户点评