Java 如何使用Channel和Scala并行下载文件?
如何使此代码并行下载文件Java 如何使用Channel和Scala并行下载文件?,java,scala,download,channel,Java,Scala,Download,Channel,如何使此代码并行下载文件 object Files{ def main(args: Array[String]): Unit ={ System.setProperty("http.proxyHost", "abc"); System.setProperty("http.proxyPort", "8080"); var num = "000" for(x <- 1 to 999){ if(x < 10){ num =
object Files{
def main(args: Array[String]): Unit ={
System.setProperty("http.proxyHost", "abc");
System.setProperty("http.proxyPort", "8080");
var num = "000"
for(x <- 1 to 999){
if(x < 10){
num = ("00" + x).toString
}else if(x < 100 && x > 9){
num = ("0" + x).toString
}else{
num = x.toString
}
println(num)
var myUrl = new URL("http://www.example.com/1" + num + ".jpg");
var myUrlStream = myUrl.openStream();
var myUrlChannel = Channels.newChannel(myUrlStream);
var destinationChannel = new FileOutputStream("C:\\10"\\ + num + ".jpg").getChannel();
try{
destinationChannel.transferFrom(myUrlChannel, 0, Integer.MAX_VALUE);
}catch{
case ioe: IOException => ioe.printStackTrace()
}
}
}
}
对象文件{
def main(参数:数组[字符串]):单位={
set属性(“http.proxyHost”、“abc”);
setProperty(“http.proxyPort”、“8080”);
var num=“000”
对于(x 9){
num=(“0”+x).toString
}否则{
num=x.toString
}
println(num)
var myUrl=新URL(“http://www.example.com/1“+num+”.jpg”);
var myUrlStream=myUrl.openStream();
var myUrlChannel=Channels.newChannel(myUrlStream);
var destinationChannel=new FileOutputStream(“C:\\10”\\\+num+”.jpg”).getChannel();
试一试{
destinationChannel.transferFrom(myUrlChannel,0,整数.MAX_值);
}抓住{
案例ioe:IOException=>ioe.printStackTrace()
}
}
}
}
您可以使用并行集合(注意par
调用):
<代码>(1到999)
if(x<10){
num=(“00”+x).toString
}否则如果(x<100&&x>9){
num=(“0”+x).toString
}否则{
num=x.toString
}
println(num)
var myUrl=新URL(“http://www.example.com/1“+num+”.jpg”);
var myUrlStream=myUrl.openStream();
var myUrlChannel=Channels.newChannel(myUrlStream);
var destinationChannel=new FileOutputStream(“C:\\10”\\\+num+”.jpg”).getChannel();
试一试{
destinationChannel.transferFrom(myUrlChannel,0,整数.MAX_值);
}抓住{
案例ioe:IOException=>ioe.printStackTrace()
}
}
您可以使用并行集合(注意
par
调用):
<代码>(1到999)
if(x<10){
num=(“00”+x).toString
}否则如果(x<100&&x>9){
num=(“0”+x).toString
}否则{
num=x.toString
}
println(num)
var myUrl=新URL(“http://www.example.com/1“+num+”.jpg”);
var myUrlStream=myUrl.openStream();
var myUrlChannel=Channels.newChannel(myUrlStream);
var destinationChannel=new FileOutputStream(“C:\\10”\\\+num+”.jpg”).getChannel();
试一试{
destinationChannel.transferFrom(myUrlChannel,0,整数.MAX_值);
}抓住{
案例ioe:IOException=>ioe.printStackTrace()
}
}
(1 to 999).par.foreach { x =
if(x < 10){
num = ("00" + x).toString
}else if(x < 100 && x > 9){
num = ("0" + x).toString
}else{
num = x.toString
}
println(num)
var myUrl = new URL("http://www.example.com/1" + num + ".jpg");
var myUrlStream = myUrl.openStream();
var myUrlChannel = Channels.newChannel(myUrlStream);
var destinationChannel = new FileOutputStream("C:\\10"\\ + num + ".jpg").getChannel();
try{
destinationChannel.transferFrom(myUrlChannel, 0, Integer.MAX_VALUE);
}catch{
case ioe: IOException => ioe.printStackTrace()
}
}