URL对象调用InputStream openStream() 方法可以返回一个输入流,该输入流指向URL对象包含的资源。通过该输入流可以将服务器上的信息打印到客户端。
Main.java
package URL;
import java.util.Scanner;
import java.net.*;
public class Main {
public static void main(String []args){
Scanner in = new Scanner(System.in);
URL url;
Thread readURL;
Look look = new Look();
System.out.println("输入URL资源");
String source = in.nextLine();
try {
url = new URL(source);
look.setURL(url);
readURL = new Thread(look);
} catch (MalformedURLException e) {
e.printStackTrace();
}
readURL = new Thread(look);
readURL.start();
}
}
Look.java
package URL;
import java.io.IOException;
import java.io.InputStream;
import java.net.*;
public class Look implements Runnable{
URL url;
public void setURL(URL url){
this.url = url;
}
public void run(){
try {
InputStream in = url.openStream();
byte [] b = new byte[1024];
int n = -1;
while((n = in.read(b)) != -1){
String str = new String(b,0,n);
System.out.println(str);
}
} catch (IOException e) {
System.out.println(e);
}
}
}
例如抓取百度的资源: