请问如何把一个InputStream的内容写到一个String中去?

解决方案 »

  1.   

    private String getString(InputStream input) throws IOException {
        InputStreamReader in = new InputStreamReader(input);
        StringWriter sw = new StringWriter();
        char[] buffer = new char[1024 * 4];
        int n = 0;
        while (-1 != (n = in.read(buffer))) {
          sw.write(buffer, 0, n);
        }
        in.close();
        return sw.toString();
      }
      

  2.   

    请问一下,in.read(buffer)不是一次性的把数据读到buffer[]中了吗,为什么还要写个while呢?
      

  3.   

    如果知道InputStream大小的话自然不需要while
    直接char[] buffer = new char[InputStream大小];
      

  4.   

    char[] buffer = new char[1024 * 4];
    缓冲为4K,自然要while一下,如果读取的流过大一般缓冲一下为好
      

  5.   

    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);
    String s = null;s = br.readLine();