gpt4 book ai didi

java |将数据处理程序写入文件的方法需要比预期更多的时间

转载 作者:行者123 更新时间:2023-12-02 01:19:33 25 4
gpt4 key购买 nike

我正在尝试使用 camel 读取来自 MS Exchange 的邮件,并将附件作为 DataHandler 获取。 10MB 文件大约需要 3 小时 才能写入该位置。

File outputFile = new File(someDirectory, someFileName);
DataHandler attachment_data = destination1Attachments.get("someFileName.txt");

try (FileOutputStream fos = new FileOutputStream(outputFile)) {
attachment_data.writeTo(fos);
}

我还注意到,有时一个 6 到 7Mb 的文件大约需要 2 到 3 分钟,而当紧接着收到另一封邮件时,需要的时间比预期要长。

因为GC?

尝试找到确切的根本原因或任何其他方法将数据写入文件。

更新 1:
正如 @user207421 在评论中提到的,尝试在 FileOutputSteam 周围使用 BufferedOutputStream 。找不到太多变化(只需 1 秒或更多)。

最佳答案

这可能是由于写入机制的默认实现所致。

attachment_data.writeTo(fos);  

如果DataHandler.getDataSource()!=null那么这个理论就有效

在此方法实现中,一次读取 8 个字节并将其写入流中。读取和写入的次数较多,这可能是导致问题的原因。

尝试从 DataHandler.getInputStream 中自行读取数据,并通过增加从输入流读取的内容来写入文件。

关于 java |将数据处理程序写入文件的方法需要比预期更多的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57970958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com