【发布时间】:2014-09-07 12:01:47
【问题描述】:
我想从流中读取。在实体中,我没有设置内容长度,为此,我无法创建具有固定和正确大小的缓冲区。我创建了一个长度为 16384 的缓冲区,但我的数据更多,并且部分数据丢失了!我想从流中读取并写入 char 数组,我不想用 readLine 读取。我该如何编写这段代码?请用部分代码说明。
谢谢
char[] buffer;
if (contentLength == -1)
buffer = new char[16038];
else
buffer = new char[contentLength];
InputStream stream = responseEntity.getContent();
//String resultS=convertStreamToString(stream);
InputStreamReader streamReader = new InputStreamReader(stream,"UTF-8");
int hasRead = 0;
int readSize = 0;
int bufferLength = buffer.length;
//List<Byte> listChar=new ArrayList<Byte>();
while (hasRead < bufferLength) {
readSize = streamReader.read(buffer, hasRead, bufferLength
- hasRead);
if (readSize == -1)
break;
hasRead += readSize;
}
【问题讨论】:
标签: android buffer inputstream