/* This short program demonstrates the URL and URLConnection classes by attempting to open a connection to a URL and read text from it. The url must be specified on the command line. If an error occurs, a message is output. Otherwise, the text from the URL is copied to the screen. */ import java.net.*; import java.io.*; public class ReadURL { public static void main(String[] args) { if (args.length == 0) { System.out.println("Please specify a URL on the command line."); return; } try { readTextFromURL(args[0]); } catch (Exception e) { System.out.println("\n*** Sorry, an error has occurred ***\n"); System.out.println(e); } } static void readTextFromURL( String urlString ) throws Exception { // This subroutine attempts to copy text from the // specified URL onto the screen. All errors must // be handled by the caller of this subroutine. /* Open a connection to the URL, and get an input stream for reading data from the URL. */ URL url = new URL(urlString); URLConnection connection = url.openConnection(); InputStream urlData = connection.getInputStream(); /* Check that the content is some type of text. Note: If getContentType() method were called before getting the input stream, it is possible for contentType to be null only because no connection can be made. The getInputStream() method will throw an error if no connection can be made. */ String contentType = connection.getContentType(); if (contentType == null || contentType.startsWith("text") == false) throw new Exception("URL does not refer to a text file."); /* Copy characters from the input stream to the screen, until end-of-file is encountered (or an error occurs). */ while (true) { int data = urlData.read(); if (data < 0) break; System.out.print((char)data); } } // end readTextFromURL() } // end class ReadURL