import java.io.*; import java.net.*; public class NewsSearch { public static void main(String[] args) throws Exception { String query = args[0]; String[] sites = new String[] { "http://www.cnn.com", "http://news.bbc.co.uk", "http://www.nytimes.com", "http://www.slashdot.org" }; String[] contents = new String[sites.length]; // Fetch pages serially for (int i = 0; i < sites.length; i++) { contents[i] = fetchContent(sites[i]); } // Count up results System.out.println("Counting up results..."); int totalFound = 0; for (int i = 0; i < sites.length; i++) { if (contents[i].indexOf(query) != -1) { System.out.println("Found " + query + " on " + sites[i]); totalFound++; } } System.out.println(totalFound + " of " + sites.length + " news sites mentioned " + query); } public static String fetchContent(String site) { try { System.out.println("Fetching " + site + "..."); URL url = new URL(site); InputStreamReader in = new InputStreamReader(url.openStream()); String content = ""; char[] buffer = new char[4096]; int numRead; while ((numRead = in.read(buffer)) != -1) { System.out.println("Read " + numRead + " bytes from " + site); content += new String(buffer, 0, numRead); } System.out.println("Finished fetching " + site); return content; } catch (Exception e) { e.printStackTrace(); System.exit(1); return null; } } }