在Java中,当需要处理未知长度的字节数组时,可以使用ByteArrayOutputStream
和ByteArrayInputStream
来处理。ByteArrayOutputStream
可以动态地增加字节数组的大小,而ByteArrayInputStream
可以读取字节数组中的数据。
以下是一个简单的示例代码:
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
public class UnknownLengthByteArray {
public static void main(String[] args) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
try {
while ((len = System.in.read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
byte[] byteArray = byteArrayOutputStream.toByteArray();
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArray);
try {
while ((len = byteArrayInputStream.read(buffer)) != -1) {
System.out.write(buffer, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这个示例代码中,我们首先创建了一个ByteArrayOutputStream
对象,然后从标准输入中读取数据,并将其写入ByteArrayOutputStream
中。最后,我们将ByteArrayOutputStream
转换为ByteArrayInputStream
,并将其中的数据读取出来并输出到标准输出中。
这种方法可以处理任意长度的字节数组,并且可以在需要时动态地增加字节数组的大小。
领取专属 10元无门槛券
手把手带您无忧上云