1

我正在努力学习Java,并且正在浏览 Android 网站上的示例。我正在获取XML文件的远程内容。我能够获取文件的内容,但是我需要将其InputStream转换为String.

public String readIt(InputStream stream, int len) throws IOException, UnsupportedEncodingException {
        InputStreamReader reader = null;
        reader = new InputStreamReader(stream, "UTF-8");        
        char[] buffer = new char[len];
        reader.read(buffer);
        return new String(buffer);
    }

我遇到的问题是我不希望字符串受到lenvar 的限制。但是,我不太java了解如何改变这一点。

如何创建char没有长度的?

4

1 回答 1

4

一般来说,在这样的输入字符串上没有最大长度是不好的做法,因为可能会耗尽可用内存来存储它。

也就是说,您可以忽略该len变量,然后循环reader.read(...)并将缓冲区附加到您的字符串,直到您InputStream像这样阅读整个内容:

public String readIt(InputStream stream, int len) throws IOException, UnsupportedEncodingException {
        String result = "";
        InputStreamReader reader = null;
        reader = new InputStreamReader(stream, "UTF-8");        
        char[] buffer = new char[len];
        while(reader.read(buffer) >= 0)
        {
            result = result + (new String(buffer));
            buffer = new char[len];
        }
        return result;
    }
于 2013-08-27T21:25:27.597 回答