Class ByteArrayDataSource in Java 1.4



我需要使用这个类ByteArrayDataSource发送一封带有附件的电子邮件(用iText创建的pdf),但我们的环境运行在java 1.4上,但这个类在Javamail中,需要更高的版本。

我必须使用这个类如下:

//now write the PDF content to the output stream   
    outputStream = new ByteArrayOutputStream();
    pdfCreator.createPdf(data,outputStream);
    byte[] bytes = outputStream.toByteArray();

    //construct the pdf body part
    DataSource dataSource = **new ByteArrayDataSource**(bytes, "application/pdf");
    MimeBodyPart pdfBodyPart = new MimeBodyPart();
    pdfBodyPart.setDataHandler(new DataHandler(dataSource));
    pdfBodyPart.setFileName("listadosCitaciones.pdf");
    multipart.addBodyPart(messageBodyPart);

有什么建议吗?

您应该能够自己从头开始实现等价的类。查看DataSource接口中方法的javadocs,应该可以清楚地了解需要如何实现它们。

(我会帮你做的,但本周我已经写了足够多无聊的代码:-)

Stephen是对的,您只需要实现这样的自定义数据源:

public class ByteArrayDataSource implements DataSource {
    public ByteArrayDataSource(byte[] b, String ct) {
        bytes = b;
        contentType = ct;
    }
    public String getContentType() {
        return contentType;
    }
    public InputStream getInputStream() throws IOException {
        return new ByteArrayInputStream(bytes);
    }
    public String getName() {
        return null;
    }
    public OutputStream getOutputStream() {
        throw new UnsupportedOperationException();
    }
    private byte[] bytes;
    private String contentType;
}

然后您可以以与jdk1.5 ByteArrayDataSource相同的方式使用它。

相关内容

  • 没有找到相关文章

最新更新