我正在努力学习 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
?
最佳答案
一般来说,输入字符串没有最大长度是不好的做法,因为可能会用完可用内存来存储它。
就是说,您可以忽略 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;
}
关于java - InputStreamReader 不限制返回的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18475685/