使用java.net读取网络文件
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL; public class downimage { public void saveToFile(String destUrl) {
FileOutputStream fos = null;
BufferedInputStream bis = null;
HttpURLConnection httpUrl = null;
URL url = null;
int BUFFER_SIZE = 1024;
byte[] buf = new byte[BUFFER_SIZE];
int size = 0;
try {
url = new URL(destUrl);
httpUrl = (HttpURLConnection) url.openConnection();
httpUrl.connect();
bis = new BufferedInputStream(httpUrl.getInputStream());
fos = new FileOutputStream("c:\\haha.gif");
while ((size = bis.read(buf)) != -1) {
fos.write(buf, 0, size);
}
fos.flush();
} catch (IOException e) {
} catch (ClassCastException e) {
} finally {
try {
fos.close();
bis.close();
httpUrl.disconnect();
} catch (IOException e) {
} catch (NullPointerException e) {
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub downimage dw=new downimage();
dw.saveToFile("http://10.81.36.193:8081/png.png");
}
}
注意:
如果路径或者源文件名称中包含特殊符号或者空格,会报505错误,此时需要对URL进行转码
ftpUrl=ftpUrl.replaceAll("%", "%25");//先将地址本身带有的%转为%25
ftpUrl=ftpUrl.replaceAll(" ", "%20");//再将空格转换为%20 转码之后读取正常。