Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.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_Url_Nio_Channel_Fileoutputstream - Fatal编程技术网

Java 循环输入流#读取的替代方法

Java 循环输入流#读取的替代方法,java,url,nio,channel,fileoutputstream,Java,Url,Nio,Channel,Fileoutputstream,NIOAPI包含一些非常简洁的数据传输解决方案。通过通道将输入流保存为文件到硬盘驱动器的方法,以及直接从硬盘驱动器加载到RAM的文件。然而,我找不到一个简洁的解决方案,可以将输入流直接加载到RAM中。我能想到的唯一解决方案是通过输入流进行循环。这就是为什么我想知道是否有一种替代方法 频道解决方案我欣赏: URL url = new URL(name); ReadableByteChannel rbc = Channels.newChannel(url.openStream()); FileOut

NIOAPI包含一些非常简洁的数据传输解决方案。通过通道将输入流保存为文件到硬盘驱动器的方法,以及直接从硬盘驱动器加载到RAM的文件。然而,我找不到一个简洁的解决方案,可以将输入流直接加载到RAM中。我能想到的唯一解决方案是通过输入流进行循环。这就是为什么我想知道是否有一种替代方法

频道
解决方案我欣赏:

URL url = new URL(name);
ReadableByteChannel rbc = Channels.newChannel(url.openStream());
FileOutputStream fos = new FileOutputStream(fileName);
fos.getChannel().transferFrom(rbc, 0, 1 << 24);
URL=新的URL(名称);
ReadableByteChannel rbc=Channels.newChannel(url.openStream());
FileOutputStream fos=新的FileOutputStream(文件名);

fos.getChannel().transferFrom(rbc,0,第1个您“欣赏”的代码不起作用。您必须在循环中调用传输方法。它们不能保证传输整个请求的大小不会失败。这就是它们具有返回值的原因。