Reading an inputStream all at once

This question already has an answer here:

  • Read/convert an InputStream to a String 56 answers

  • What about Apache Commons IOUtils.readLines()?

    Get the contents of an InputStream as a list of Strings, one entry per line, using the default character encoding of the platform.

    Or if you just want a single string use IOUtiles.toString().

    Get the contents of an InputStream as a String using the default character encoding of the platform.

    [update] Per the comment about this being avaible on J2ME, I admit I missed that condition however, the IOUtils source is pretty light on dependencies, so perhaps the code could be used directly.


    If I understand you correctly, You can use a simple loop:

    StringBuffer sb = new StringBuffer();
    String s;
    while ((s = input.readLine()) != null)
        sb.append(s);
    

    Add a counter in your loop, and if your counter = 0, return null:

    int counter = 0;
    while ((c = read()) > 0 && c != 'n' && c != 'r' && c != -1) {
        sb.append((char)c);
        counter++;
    }
    if (counter == 0)
        return null;
    

    专门针对Web服务器!

    String temp;
    StringBuffer sb = new StringBuffer();
    while (!(temp = input.readLine()).equals("")){
        sb.append(line);
    }
    
    链接地址: http://www.djcxy.com/p/13730.html

    上一篇: 将InputStream对象追加到String对象

    下一篇: 一次读取inputStream