Start Search Contents Index Links About
GetTitle.java
/*
 * Author: Havard Rast Blok
 * E-mail:  
 * Web   : www.rememberjava.com
 */

import java.io.*;
import java.net.*;

/**
 * This small application takes an URL as argument, downloads that
 * web page and outputs its HTML title to the screen.
 
 * Refer to the main() method for how to read a local file instead.
 */
public class GetTitle
{
  private static String startTag = "<title>";
  private static String endTag = "</title>";
  private static int startTagLength = startTag.length();

  public GetTitleURL theURL )
  {
    BufferedReader bufReader;
    String line;
    boolean foundStartTag = false;
    boolean foundEndTag = false;
    int startIndex, endIndex;
    String title = "";
    
    try
    {
      //open file
      bufReader = new BufferedReadernew InputStreamReader(theURL.openStream()) );
      
      //read line by line
      while( (line = bufReader.readLine()) != null && !foundEndTag)
      {
        //System.out.println(line);
      
        //search for title start tag (convert to lower case before searhing)
        if!foundStartTag && (startIndex = line.toLowerCase().indexOf(startTag)) != -)
        {
          foundStartTag = true;
        }
        else
        {
          //else copy from start of string
          startIndex = -startTagLength;
        }
        
        //search for title start tag (convert to lower case before searhing)
        iffoundStartTag && (endIndex = line.toLowerCase().indexOf(endTag)) != -)
        {
          foundEndTag = true;
        }
        else
        {
          //else copy to end of string
          endIndex = line.length();
        }
        
        //extract title field
        iffoundStartTag || foundEndTag )
        {
          //System.out.println("foundStartTag="+foundStartTag);
          //System.out.println("foundEndTag="+foundEndTag);
          //System.out.println("startIndex="+startIndex);
          //System.out.println("startTagLength="+startTagLength);
          //System.out.println("endIndex="+endIndex);
        
          title += line.substringstartIndex + startTagLength, endIndex );
        }
      }
      
      //close the file when finished
      bufReader.close();
      
      //output the title
      iftitle.length() )
      {
        System.out.println("Title: "+title);
      }
      else
      {
        System.out.println("No title found in document.");
      }
      
    }
    catchIOException e )
    {
      System.out.println"GetTitle.GetTitle - error opening or reading URL: " + e );
    }
  }
  
  
  public static void mainString args[] )
  {
    try
    {
      new GetTitle(new URL(args[0]));
      
      //Open file from disk instead
      //File f = new File( args[0] );
      //new GetTitle( f.toURL() );
    }
    catch (MalformedURLException e)
    {
      System.out.println("GetTitle.main - wrong url: " +e );
    }
    
  }
}


site: Håvard Rast Blok
mail:
updated: 27 July 2007