[英]Get byte array from InputStream without a known size in Java?
我通过套接字发送一个字节数组,我通过DataInputStream接收它。 我不知道字节数组的大小,也没办法检查。 我试过这样做:
byte[] content = new byte[ARRAY_SIZE];
int something;
while((something = inFromStream.read()) > 0)
output.write(something);
但是,这仍然意味着我需要知道字节数组的大小。 我不想只填写一个巨大的数字(因为从流中接收的字节数组可能是100或甚至5000000000)。 我该如何处理(最好使用标准的Java API /库)?
您可以将byte[]
分段发送到OutputStream
byte[] buffer = new byte[1024 /* or some other number */];
int numRead;
while((numRead = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, numRead);
}
方式 - 只是没有代码示例的逻辑
getSizeOfInput int countTokens(){
readInput tokenizeInput countTokens
return countTokens}
创建一个大小为countTokens的数组
但总而言之 - 看看链接创建一个字节的ArrayList
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.