Parses MIME (or RFC822) message streams of bytes or characters. The stream is converted into an event stream.
Typical usage:
MimeTokenStream stream = new MimeTokenStream(); stream.parse(new FileInputStream("mime.msg")); 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()); ... } }
Instances of {@link MimeTokenStream} are reusable: Invoking themethod {@link #parse(InputStream)} resets the token streams internalstate. 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.
@version $Id: MimeStreamParser.java,v 1.8 2005/02/11 10:12:02 ntherning Exp $