Android 写字符数组
我想从溪流中阅读。在实体中,我不设置内容长度,为此,我无法创建具有固定和正确大小的缓冲区。我创建了一个长度为16384的缓冲区,但我的数据更多,部分数据丢失!我想从流中读取并写入字符数组,但我不想用readLine读取。如何编写此代码?请用部分代码解释 谢谢Android 写字符数组,android,buffer,inputstream,Android,Buffer,Inputstream,我想从溪流中阅读。在实体中,我不设置内容长度,为此,我无法创建具有固定和正确大小的缓冲区。我创建了一个长度为16384的缓冲区,但我的数据更多,部分数据丢失!我想从流中读取并写入字符数组,但我不想用readLine读取。如何编写此代码?请用部分代码解释 谢谢 char[] buffer; if (contentLength == -1) buffer = new char[16038]; else buffer =
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;
}
char[]缓冲区;
如果(contentLength==-1)
缓冲区=新字符[16038];
其他的
缓冲区=新字符[contentLength];
InputStream=responseEntity.getContent();
//字符串结果=convertStreamToString(流);
InputStreamReader streamReader=新的InputStreamReader(流,“UTF-8”);
int hasRead=0;
int readSize=0;
int bufferLength=buffer.length;
//List listChar=new ArrayList();
while(hasRead
将您发布的代码替换为:
InputStream stream = responseEntity.getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(stream,"UTF-8"));
StringBuilder sb = new StringBuilder();
String line;
while ((line = r.readLine()) != null) {
sb.append(line);
}
char buffer[] = sb.toString().toCharArray();
我在哪里写这段代码?我在append方法中设置了什么?我写了这个,但json的结尾部分没有返回。为什么?这是服务器的问题还是客户端的问题?可能是服务器端的问题,您可以检查
responseEntity.getContent()代码>返回正确的数据还是null