📄 biancheng11.txt
字号:
发 表 人:Rain_Day(风筝) 版面名称:Java视图C[2465]
文章提要:贴一个网络编程的程序
源 发 站:中国科大BBS站(Sat, 17 Jul 1999 22:51:41)
这是一本书上的程序,我调试通过了,
个人以为挺不错的,比上面斑竹贴
的那篇还要好,所以想贴出来给网虫
们共享!
本例用openstream()方法在fttp上装入文件。
可以是类文件,图形或WEB服务器提供的其他
数据。
程序启动,用指定的协议连接URL,取得数据,
数据装入时,写入磁盘,输出放在本机的该
类文件的同目录下。
如:
java GetURL http://202.38.64.10/你的主页名/文件名
就可以将你指定的文件下载到你本机这个java类的同目录下了。
import java.io.*;
import java.net.*;
public class GetURL{
public static void main(String args[]){
if (args.length < 1){
System.err.println("Usage:java GetURL<URL>...");
System.exit(1);
}
else{
GetURL(args[0]);
}
}
private static void GetURL(String urlname){
URL url = null;
InputStream urlstream = null;
byte[] returned;
try{
url = new URL(urlname);
}
catch(Exception e){
System.err.println("URL "+urlname +" failed.reason is: ");
System.err.println(e.toString());
return;
}
try{
urlstream = url.openStream();
}
catch(Exception e){
System.err.println("URL "+urlname +" failed.reason is :");
System.err.println(e.toString());
return;
}
returned = getURLFile(urlstream);
String filename = (url.getFile()).replace('/',File.separatorChar);
File f1 = new File(filename);
filename = f1.getName();
FileOutputStream f = null;
try{
f = new FileOutputStream(filename);
f.write(returned);
f.close();
}
catch(Exception e){
System.err.println("Error handling output file:" + filename);
return;
}
}
private static byte[] getURLFile(InputStream s){
byte[] buffer = new byte[0];
byte[] chunk = new byte[4096];
int count;
try{
while((count = s.read(chunk))>= 0 ){
byte[] t = new byte[buffer.length+count];
System.arraycopy(buffer,0,t,0,buffer.length);
System.arraycopy(chunk,0,t,buffer.length,count);
buffer = t;
}
}
catch(Exception e){
System.err.println("Error during reading: "+ e);
}
return buffer;
}
}
--
※ 来源: 中国科大BBS站 [bbs.ustc.edu.cn]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -