Class 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.