public final InputStream openStream() throws IOException
The openStream()
method opens a connection to the
server specified in the URL and returns an InputStream
fed by the data from that connection. This allows you to download data
from the server. Any headers that come before the actual data or file requested
are stripped off before, the stream is opened. You get only raw data.
You read from the input stream using the methods of java.io
discussed
in Week 10. Note that most network connections
are considerably less reliable and slower sources of data than files.
Buffering, either via a BufferedInputStream
or a BufferedReader
, is important.
The following example reads a series of host names and URLs from the command line.
It attempts to form a URL from each command line argument, connect to the specified
server, and download the data, which is then printed on System.out
.
import java.net.*;
import java.io.*;
public class Webcat {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
try {
URL u = new URL(args[i]);
InputStream is = u.openStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String theLine;
while ((theLine = br.readLine()) != null) {
System.out.println(theLine);
}
}
catch (MalformedURLException e) {
System.err.println(e);
}
catch (IOException e) {
System.err.println(e);
}
}
}
}