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.