import java.util.*;
import java.io.*;
import java.io.File;
import java.net.*;
/**
*该程序用于从网上下载一个文件到本机,可以用参数列 http://www.sohu.com/ sohu.htm 和 *http://images.sohu.com/uiue/sohu_logo/beijing2008/sohu.gif sohu.gif进行试验
*/public class URLReader
{
private static final int BUFFER_LENGTH=65536;
public static void main(String args[]) throws Exception{
URL remote;
remote=new URL(args[0]); //向控制台输出一些连结的信息
URLConnection conn=remote.openConnection();
System.out.println("Length: "+conn.getContentLength());
System.out.println("Connection Type: "+conn.getContentType());
System.out.println("Changed: "+new Date(conn.getLastModified())); //建立输入流
InputStream stream=remote.openStream();
InputStream inStream=conn.getInputStream();
int connectLength=conn.getContentLength();
//建立随机访问文件
String fileName=args[1];
RandomAccessFile file=new RandomAccessFile(fileName,"rw"); //缓冲
byte[] buffer=new byte[BUFFER_LENGTH]; //如果文件大小比缓冲小,就把缓冲里的byte一次写入文件
if(connectLength<=BUFFER_LENGTH){
file.write(buffer,0,connectLength);
}
//否则多写几次,直到全部写进文件
else{
int contentSize=0;
int position=0;
while((contentSize=inStream.read(buffer))==BUFFER_LENGTH){
file.write(buffer,position,BUFFER_LENGTH);
position+=BUFFER_LENGTH;
}
file.write(buffer,position,contentSize);
} //关闭文件和输入流
file.close();
inStream.close();
}
}/*存在的问题是下载下来的文件,网页似乎可以打开,但是图片文件打不开(或者打开看不到图像),但是文件大小是对的。不知道这是为什么啊!!各位帮忙分析一下了,小弟百思不得其解啊.用FilterOutPutStream类试过,存在同样的问题.超级感谢大家了*/
import java.io.*;
import java.io.File;
import java.net.*;
/**
*该程序用于从网上下载一个文件到本机,可以用参数列 http://www.sohu.com/ sohu.htm 和 *http://images.sohu.com/uiue/sohu_logo/beijing2008/sohu.gif sohu.gif进行试验
*/public class URLReader
{
private static final int BUFFER_LENGTH=65536;
public static void main(String args[]) throws Exception{
URL remote;
remote=new URL(args[0]); //向控制台输出一些连结的信息
URLConnection conn=remote.openConnection();
System.out.println("Length: "+conn.getContentLength());
System.out.println("Connection Type: "+conn.getContentType());
System.out.println("Changed: "+new Date(conn.getLastModified())); //建立输入流
InputStream stream=remote.openStream();
InputStream inStream=conn.getInputStream();
int connectLength=conn.getContentLength();
//建立随机访问文件
String fileName=args[1];
RandomAccessFile file=new RandomAccessFile(fileName,"rw"); //缓冲
byte[] buffer=new byte[BUFFER_LENGTH]; //如果文件大小比缓冲小,就把缓冲里的byte一次写入文件
if(connectLength<=BUFFER_LENGTH){
file.write(buffer,0,connectLength);
}
//否则多写几次,直到全部写进文件
else{
int contentSize=0;
int position=0;
while((contentSize=inStream.read(buffer))==BUFFER_LENGTH){
file.write(buffer,position,BUFFER_LENGTH);
position+=BUFFER_LENGTH;
}
file.write(buffer,position,contentSize);
} //关闭文件和输入流
file.close();
inStream.close();
}
}/*存在的问题是下载下来的文件,网页似乎可以打开,但是图片文件打不开(或者打开看不到图像),但是文件大小是对的。不知道这是为什么啊!!各位帮忙分析一下了,小弟百思不得其解啊.用FilterOutPutStream类试过,存在同样的问题.超级感谢大家了*/
当然没有图片啊
存储的不止html文件吧,还有个大大的文件夹呢
图片就在那里
Image getImage(URL u,String s);
获取指定URL处的图像.
如果是绝对url,那么本地还是可以看到
但是如果是相对url的话就看不到了,如果你想要保存图片的话,就要编程把这些图片也取回来,并且放到相应的目录下面
import java.io.*;
import java.net.*;public class URLReader
{
private static final int BUFFER_LENGTH=7096;
public static void main(String args[]) throws Exception{
URL remote;
remote=new URL("http://www.baidu.com/img/logo.gif"); URLConnection conn=remote.openConnection();
System.out.println("Length: "+conn.getContentLength());
System.out.println("Connection Type: "+conn.getContentType());
System.out.println("Changed: "+new Date(conn.getLastModified()));
InputStream inStream=conn.getInputStream();
String fileName="c:/logo.gif";
RandomAccessFile file=new RandomAccessFile(fileName,"rw"); byte[] buffer=new byte[BUFFER_LENGTH]; int contentSize=0;
int position=0;
while((contentSize=inStream.read(buffer)) != -1){
file.write(buffer,position,contentSize);
position+=contentSize;
} file.close();
inStream.close();
}}