2017-10-29 8 views
1

私はしばらくこの座っていました。 emlファイルを作成するためのコードスニペットがあります。javamailを使用している間、添付ファイルの読み取り/書き込みに奇妙な時間があります

private void saveAsEml(Message msg){ 

    try (FileOutputStream out = new FileOutputStream(new File("path-to-file.eml"))) { 
     msg.writeTo(out); 
     out.flush(); 
    } 
} 

しかしMessage msg大きめアタッチメント(10メガバイトのcsvファイル)を持っている場合、これらの2行は10〜15分間ブロックします。

ここで問題は何ですか?私はメッセージ内のInputStreamが非常に長く、読書に時間がかかることがあることを知っていますが、私は中核を理解していません。私は、人々が250MB以内に200MBのファイルを読んでいる例を見つけることができました。

ありがとう、 ボブ。

+1

FileOutputStreamを中心にBufferedOutputStreamで試してみてください。 – EJP

+0

この提案の後に問題が残っています:( – Bobzone

+0

私の回答は役に立ちましたか? – Lothar

答えて

1

Messageはどこから来ますか? IMAPを使用してメールボックスから取得した場合は、添付ファイルがまだダウンロードされていない可能性があります。そのメッセージをローカルファイルシステムに書き込むときには、これらのすべての部分をメールサーバからダウンロードしなければならず、その接続が非常に遅いと、あなたは長い時間で終わります。

関連する問題