为什么在读取或写入文件时将字节数组初始化为1024?

时间:2013-12-23 07:04:31

标签: java io buffer

在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?

1 个答案:

答案 0 :(得分:6)

这称为缓冲,每次在每次循环时都覆盖缓冲区的内容。

只需以块的形式读取文件,而不是一次为文件内容分配内存。

这背后的原因是如果文件太大,你将成为OutOfMemoryException的明确受害者。

并且针对具体问题,即使你可以使用500,也不需要1024.但是最低1024是常用的。