Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.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 将DataInputStream转换为映射的行为_Java_Bytearray_Datainputstream - Fatal编程技术网

Java 将DataInputStream转换为映射的行为

Java 将DataInputStream转换为映射的行为,java,bytearray,datainputstream,Java,Bytearray,Datainputstream,我在将文件保存到磁盘时遇到问题。 在环境中,要保存的路径是磁盘在另一台服务器中的映射。 A-当我试图用循环保存DataInputStream时,每字节读取一个字节,需要花费大量时间~12分钟/MB。 现在,我读到一个传递字节[8192]的a。这就解决了问题。 我知道B比A快,但是,当我运行相同的代码,试图保存到本地磁盘时,两者没有区别,都需要相同的时间。 为什么映射需要很多时间? 一次读取一个字节[8192]会导致问题吗 Tks 嗯,等等,;你为什么不直接使用文件?复制?我不能。这是来自WebR

我在将文件保存到磁盘时遇到问题。 在环境中,要保存的路径是磁盘在另一台服务器中的映射。 A-当我试图用循环保存DataInputStream时,每字节读取一个字节,需要花费大量时间~12分钟/MB。 现在,我读到一个传递字节[8192]的a。这就解决了问题。 我知道B比A快,但是,当我运行相同的代码,试图保存到本地磁盘时,两者没有区别,都需要相同的时间。 为什么映射需要很多时间? 一次读取一个字节[8192]会导致问题吗


Tks

嗯,等等,;你为什么不直接使用文件?复制?我不能。这是来自WebResponse的数据。DataInputStream与其他任何文件一样是InputStream,并且有文件。copyInputStream、Path、CopyOption…因为网络比本地磁盘慢,而且显然网络磁盘处理单字节写入的效率不如本地操作系统。当您写入单个字节时,它可能会传输整个块。无论如何,您不应该对网络或本地驱动器这样做,而且可以说,应用程序首先不应该使用网络驱动器。如果必须执行这种I/O操作,请在数据流下放置一个缓冲流。@fge-是的,我可以使用Files.copyInputStream、Path、CopyOption…,但我可以知道为什么方法速度较慢@EJP-没错!这是我的怀疑。BufferedInputStream比DataInputStream好?