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

Java 为什么在读取或写入文件时将字节数组初始化为1024?,java,io,buffer,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

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

这称为缓冲,并且每次通过循环时都覆盖缓冲区的内容

只需分块读取文件,而不是一次为文件内容分配内存

这样做的原因是,如果文件太大,您将成为OutOfMemoryException的明显受害者

说到具体的问题,不需要是1024,即使你可以用500。但最小1024是一个常见用法。

一个简单的搜索给了我答案