在java输入或输出流中,字节数组大小始终为1024。 如下所示:
URL url = new URL(src);
URLConnection connection = url.openConnection();
InputStream is = connection.getInputStream();
OutputStream os = new FileOutputStream("D:\\images"+"\\"+getName(src)+getExtension(src));
byte[] byteArray = new byte[1024];
int len = 0;
while((len = is.read(byteArray))!= -1){
os.write(byteArray, 0, len);
}
is.close();
os.close();
为什么要将此数组初始化为1024?
答案 0 :(得分:6)
这称为缓冲,每次在每次循环时都覆盖缓冲区的内容。
只需以块的形式读取文件,而不是一次为文件内容分配内存。
这背后的原因是如果文件太大,你将成为OutOfMemoryException的明确受害者。
并且针对具体问题,即使你可以使用500,也不需要1024.但是最低1024是常用的。