FileDocCategorySizeDatePackage
ReadHeaders.javaAPI DocExample1662Tue Mar 13 15:32:30 GMT 2001None

ReadHeaders.java

import java.io.*;

/**
 * Read a file return mail headers one at a time.
 */
public class ReadHeaders {
	protected BufferedReader is;

	/** Construct */
	public ReadHeaders(BufferedReader f) {
		is = f;
	}

	/** Main program showing how to use it */
    public static void main(String[] av) {
        switch(av.length) {
            case 0: 
				ReadHeaders r = new ReadHeaders(
					new BufferedReader(
                        new InputStreamReader(System.in))); 
				printit(r);
				break;
            default:
				for (int i=0; i<av.length; i++)
                    try {
						ReadHeaders rr = new ReadHeaders(
							new BufferedReader(new FileReader(av[i])));
						printit(rr);
                    } catch (FileNotFoundException e) {
                        System.err.println(e);
                    }
				break;
        }
    }

	/** Simple demo showing how to use it */
	public static void printit(ReadHeaders r) {
		while (r.more())  {
			Header h = r.next();
			System.out.println(h.type + " = " + h.text);
		}
	}

	String inputLine;

    /** check to see if more headers available */
    public boolean more() {
		if (is == null)
			return false;
        try {

            inputLine = is.readLine();
			if (inputLine == null || inputLine.length() == 0) {
				is.close();
				is = null;
			}
        } catch (IOException e) {
            System.out.println("IOException: " + e);
			is = null;
			return false;
        }
		return true;
    }

	public Header next() {
		int pos = inputLine.indexOf(":");
		if (pos < 0)
			return new Header("??", inputLine);
		return new Header(
			inputLine.substring(0, pos),
			inputLine.substring(pos + 1));
	}
}