相关疑难解决方法(0)

Java-将bufferedimage转换为byte []而不写入磁盘

我正在尝试使用java在套接字上发送多个图像,但我需要一种更快的方法将图像转换为字节数组,以便我可以发送它们.我尝试了以下代码,但它向我的C:\驱动器写了大约10,000张图像.有没有办法在不写入磁盘的情况下进行此转换?谢谢!

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

                    //ImageIO.setUseCache(false);
                    ImageIO.write(bi.getImage(), "jpg", outputStream);

                    byte[] imageBytes = outputStream.toByteArray();
Run Code Online (Sandbox Code Playgroud)

java byte bufferedimage

23
推荐指数
2
解决办法
4万
查看次数

使用现有的InputStream作为附件内容,使用javax.mail发送电子邮件

是否可以javax.mail使用"现有" InputStream发送电子邮件附件内容的电子邮件?

目前我正在构建如下电子邮件:

final MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("Subject line");

final Multipart multipartContent = new MimeMultipart();

    final MimeBodyPart textPart = new MimeBodyPart();
    textPart.setText("Message body");
    multipartContent.addBodyPart(textPart);

    final MimeBodyPart attachmentPart = new MimeBodyPart();
    final DataSource source = new InputStreamDataSource("text/plain", "test.txt", new ByteArrayInputStream("CONTENT INPUT STREAM".getBytes()));
    attachmentPart.setDataHandler(new DataHandler(source));
    attachmentPart.setFileName("text.txt");
    multipartContent.addBodyPart(attachmentPart);

message.setContent(multipartContent);
Run Code Online (Sandbox Code Playgroud)

InputStreamDataSource 实施如下:

public class InputStreamDataSource implements DataSource
{
    private final String contentType;
    private final String name;
    private final InputStream inputStream;

    public InputStreamDataSource(String contentType, String …
Run Code Online (Sandbox Code Playgroud)

java jakarta-mail javax.activation

6
推荐指数
1
解决办法
6920
查看次数

javamail问题:如何在不创建文件的情况下附加文件

我正在使用javamail API创建电子邮件并将文件附加到它.

有没有办法使用javamail api发送带附件的电子邮件,而无需在文件系统上物理创建文件.

我只想从应用程序中选择一些数据并将其作为文件附加到我的电子邮件中

我该如何附上:

try {
            // create a message
            MimeMessage msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress(from));
            InternetAddress[] address = {new InternetAddress(to)};
            msg.setRecipients(Message.RecipientType.TO, address);
            msg.setSubject(subject);

            // create and fill the first message part
            MimeBodyPart mbp1 = new MimeBodyPart();
            mbp1.setText(msgText1);

            // create the second message part
            MimeBodyPart mbp2 = new MimeBodyPart();

            // attach the file to the message
            **mbp2.attachFile(filename);**


            // create the Multipart and add its parts to it
            Multipart mp = new MimeMultipart();
            mp.addBodyPart(mbp1);
            mp.addBodyPart(mbp2);

            // add the …
Run Code Online (Sandbox Code Playgroud)

java attachment jakarta-mail

5
推荐指数
1
解决办法
1万
查看次数