我实现了一个Java类,该类提供了一个选择sql oracle,oracle创建了一个文件(csv)(临时),并通过电子邮件以计划的进程发送该文件。 我有一个问题:邮件客户端的发送和接收大小。 给定选择权后,我怎么知道我的文件将有多大?您建议采取哪些其他检查来避免生成文件然后无法发送/接收?
非常感谢
答案 0 :(得分:0)
创建临时文件时
File tempFile;
只需
double size=tempFile.lenght();
将返回文件大小(以字节为单位),您可以先检查它,然后再发送电子邮件。
答案 1 :(得分:0)
如果要在生成文件之前 估计SQL结果集的大小,这会有些棘手。人们之前曾问过类似的问题-one,two。
我建议您按照this answer的说明进行操作:对您的查询执行SELECT COUNT(*)
以获取行数。 (您可能还可以使用游标或ResultSet对象来执行此操作,具体取决于您执行此操作的方式。)然后将行数乘以平均行大小,这可以通过查看一些生成的CSV文件来完成并计算大小除以行数。
如果这是一个常见问题,您也可以考虑使用zipping your CSV files。它们通常压缩得很好。