一次读取inputStream

这个问题在这里已经有了答案:

  • 将InputStream读取/转换为字符串56个答案

  • 那么Apache Commons IOUtils.readLines()呢?

    获取InputStream的内容作为字符串列表,每行一个条目,使用平台的默认字符编码。

    或者,如果您只想使用一个字符串,请使用IOUtiles.toString()。

    使用平台的默认字符编码将InputStream的内容作为字符串获取。

    [更新]根据关于这个在J2ME上可用的评论,我承认我错过了这个条件,但是IOUtils源代码在依赖关系上非常轻,所以也许代码可以直接使用。


    如果我正确理解你,你可以使用一个简单的循环:

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

    在循环中添加一个计数器,如果您的计数器= 0,则返回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/13729.html

    上一篇: Reading an inputStream all at once

    下一篇: Java String from InputStream