我正在努力学习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);
}
我遇到的问题是我不希望字符串受len
var的限制。但是,我不清楚java
知道如何改变它。
如何创建没有长度的char
?
答案 0 :(得分: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;
}