Как конвертировать mime.4j сообщение в inputtream

Я использую MultipartFormDataInput для получения входного потока из файла.eml для загрузки документа. Я мог бы выяснить причину этой проблемы, класс MultipartInputImpl.java имеет метод getBody(), который при вызове выдает нулевой входной поток. В основном потому, что тело является экземпляром mime4j.Message, а об этом не заботятся в методе getBody. Нужна помощь с использованием этих встроенных методов для загрузки файлов электронной почты. Можно ли как-то преобразовать сообщение mime4j в действительное двоичное тело или входной поток?

 public InputStream getBody() throws IOException
    {
        Body body = bodyPart.getBody();
        InputStream result = null;
        if (body instanceof TextBody)
        {
            throw new UnsupportedOperationException();
        /*
        InputStreamReader reader = (InputStreamReader)((TextBody) body).getReader();
        StringBuilder inputBuilder = new StringBuilder();
        char[] buffer = new char[1024];
        while (true) {
           int readCount = reader.read(buffer);
           if (readCount < 0) {
              break;
           }
           inputBuilder.append(buffer, 0, readCount);
        }
        String str = inputBuilder.toString();
        return new ByteArrayInputStream(str.getBytes(reader.getEncoding()));
        */
        }
        else if (body instanceof BinaryBody)
        {
            return ((BinaryBody)body).getInputStream();
        }
        return result;
    }

0 ответов

Другие вопросы по тегам