Append InputStream object to String object
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Read/convert an InputStream to a String
我尝试将数据从inputstream对象附加到字符串,如下所示:
1 2 3 4 5 6 | byte[] buffer = new byte[8192]; InputStream stdout; String s =""; while(IsMoreInputDataAvailable()) { int length = this.stdout.read(buffer); s += new String(this.buffer, 0, length,"ASCII"); |
在不使用Apache或类似库的情况下,有没有一种更简单的方法可以做到这一点?
从
1 2 3 4 5 6 7 8 | Reader r = new InputStreamReader(stdout,"ASCII"); char buf = new char[4096]; int length; StringBuilder s = new StringBuilder(); while ((length = r.read(buf)) != -1) { s.append(buf, 0, length); } String str = s.toString(); |
注意,在一个循环中反复附加到一个
这里有一个链接,指向几种方法(有或没有外部库)。一种方法(从上面的链接中提取)使用Java扫描器(因为Java 5):
1 2 3 4 5 6 7 8 | public class InputStreamTest { public static void main(String args[]) throws FileNotFoundException { FileInputStream fis = new FileInputStream("c:/sample.txt"); String inputStreamString = new Scanner(fis,"UTF-8").useDelimiter("\\A").next(); System.out.println(inputStreamString); } } |