Class MimeTokenStream

java.lang.Object
org.apache.james.mime4j.stream.MimeTokenStream

public class MimeTokenStream extends Object

Parses MIME (or RFC822) message streams of bytes or characters. The stream is converted into an event stream.

Typical usage:

     MimeTokenStream stream = new MimeTokenStream();
     InputStream instream = new FileInputStream("mime.msg");
     try {
         stream.parse(instream);
         for (int state = stream.getState();
             state != MimeTokenStream.T_END_OF_STREAM;
             state = stream.next()) {
             switch (state) {
             case MimeTokenStream.T_BODY:
                 System.out.println("Body detected, contents = "
                 + stream.getInputStream() + ", header data = "
                 + stream.getBodyDescriptor());
                 break;
             case MimeTokenStream.T_FIELD:
                 System.out.println("Header field detected: "
                 + stream.getField());
                 break;
             case MimeTokenStream.T_START_MULTIPART:
                 System.out.println("Multipart message detexted,"
                 + " header data = "
                 + stream.getBodyDescriptor());
             ...
             }
         }
     } finally {
         instream.close();
     }

Instances of MimeTokenStream are reusable: Invoking the method parse(InputStream) resets the token streams internal state. However, they are definitely not thread safe. If you have a multi threaded application, then the suggested use is to have one instance per thread.