gpt4 book ai didi

java - 使用 FileOutputStream 在 Java 中写入文件

转载 作者:行者123 更新时间:2023-12-02 11:17:21 26 4
gpt4 key购买 nike

String remoteFile2 = "/test/song.mp3";
File downloadFile2 = new File("D:/Downloads/song.mp3");
OutputStream outputStream2 = new BufferedOutputStream(new FileOutputStream(downloadFile2));
InputStream inputStream = ftpClient.retrieveFileStream(remoteFile2);
byte[] bytesArray = new byte[4096];
int bytesRead = -1;
while ((bytesRead = inputStream.read(bytesArray)) != -1) {
outputStream2.write(bytesArray, 0, bytesRead);
}

This is a sample file writing code in java,

byte[] bytesArray = new byte[4096];

在这一行中 4096 到底意味着什么,改变这个值的可能性是什么?

最佳答案

在处理流时,经常会以 block 的形式读取字节。

如果您逐一读取/写入字节,那么每个字节都会产生大量开销(例如初始化数组来存储字节、将字节放入流、记住文件中的当前位置...等)。

因此,如果您读取一组字节,您仍然有这些开销,但较少(例如,如果您有 4000 个字节,则有 4000 倍的开销。但如果您每次读取 100 个字节,则有 4000/100 = 40 倍的开销仅)

通常选择 block 的长度来平衡读/写 block 的时间和 block 的大小。

通常设置为 2k 或 4k。可能与磁盘扇区有关(512字节、2048字节...)

关于java - 使用 FileOutputStream 在 Java 中写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50178046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com