2017-10-29 4 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 파일)가있는 경우,이 두 줄 10 ~ 15 분 동안 차단

.

무엇이 문제입니까? 나는 메시지 안에있는 InputStream이 매우 길고 시간이 좀 걸릴 수도 있지만 핵심을 이해하지 못한다는 것을 알고 있습니다. 저는 사람들이 250ms 이내에 200MB 파일을 통해 읽고있는 예제를 발견했습니다.

감사합니다. Bob.

+1

FileOutputStream 주변의 BufferedOutputStream으로 시도해보십시오. – EJP

+0

이 제안 후에도 문제가 계속 발생합니다. ( – Bobzone

+0

내 대답이 도움이 되었습니까? – Lothar

답변

1

Message은 어디에서 오는가? IMAP을 사용하여 사서함에서 검색 한 경우 첨부 파일이 아직 다운로드되지 않았을 수 있습니다. 이 메시지를 로컬 파일 시스템에 쓸 때 이러한 모든 부분은 메일 서버에서 다운로드해야하며 연결 ​​속도가 매우 느린 경우 긴 시간이 소요됩니다.