Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 追加到数组与写入文件_Java_Arrays_File_Memory Management - Fatal编程技术网

Java 追加到数组与写入文件

Java 追加到数组与写入文件,java,arrays,file,memory-management,Java,Arrays,File,Memory Management,我正在编写一个程序,它接收一个可能有数百万字节的字节数组,从ByteArrayInputStream读取每个字节,如果该字节不“可打印”(ascii 32-126),则该字节以某种方式编码并写入ByteArrayInputStream实例;如果字节是“可打印的”,则直接写入同一ByteArrayOutputStream实例。 因此,从更广泛的角度来看,我采用了一个字节数组,并返回一个类似的字节数组,除了某些字符已经编码 我的问题是:将数据写入文件还是继续写入此输出流会更快?将数据写入输出流会更快

我正在编写一个程序,它接收一个可能有数百万字节的字节数组,从ByteArrayInputStream读取每个字节,如果该字节不“可打印”(ascii 32-126),则该字节以某种方式编码并写入ByteArrayInputStream实例;如果字节是“可打印的”,则直接写入同一ByteArrayOutputStream实例。 因此,从更广泛的角度来看,我采用了一个字节数组,并返回一个类似的字节数组,除了某些字符已经编码


我的问题是:将数据写入文件还是继续写入此输出流会更快?

将数据写入输出流会更快。写入文件将涉及磁盘访问,这比访问ByteArrayOutputStream中的字节数组所在的RAM要慢


但是,如果您最终希望将字节数组写入其他位置(例如文件),则ByteArrayOutputStream的中间步骤是不必要的,您应该直接写入最终目标,例如FileOutputStream。

将数据写入输出流会更快。写入文件将涉及磁盘访问,这比访问ByteArrayOutputStream中的字节数组所在的RAM要慢


但是,如果您最终希望将字节数组写入其他位置(例如文件),则ByteArrayOutputStream的中间步骤是不必要的,您应该直接写入最终目标,例如FileOutputStream。

为什么您认为写入磁盘会使事情变得更快?硬盘(甚至SSD)相对于内存访问速度较慢。我投票将此问题作为离题回答,因为并没有正确答案-问题未指定文件I/O有严重的开销,具体取决于您的硬件设置。内存实际上总是会更快。数百万字节只有几兆字节,所以我不知道为什么你会想写一个文件,因为没有真正的内存耗尽的风险。为什么你会认为写到磁盘会让事情变得更快?硬盘(甚至SSD)相对于内存访问速度较慢。我投票将此问题作为离题回答,因为并没有正确答案-问题未指定文件I/O有严重的开销,具体取决于您的硬件设置。内存实际上总是会更快。数百万字节只有几兆字节,所以我不知道为什么要写入文件,因为没有真正的内存耗尽风险。