这是一个常见的问题,并且本发明涉及的对象(丢失或不按顺序)的不正确的关闭/再循环。 E0 * TM文件将在对象处于活动状态并在回收时进行清理时创建。
如果它们是正确的,然后检查,看看是否有杀毒软件运行阻止删除。
我以前的作品之前,测试这一点,所以比较你下面的示例代码。
try {
System.out.println("Start");
String path = "test.txt";
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
System.out.println("Get DB");
Database db = session.getCurrentDatabase();
System.out.println("View + doc");
View vw = db.getView("main");
Document doc = vw.getFirstDocument();
System.out.println("Embedded object");
EmbeddedObject att = doc.getAttachment(path);
InputStream is = att.getInputStream();
ByteArrayOutputStream fos = new ByteArrayOutputStream();
byte buffer[] = new byte[(int) att.getFileSize()];
int read;
do {
read = is.read(buffer, 0, buffer.length);
if (read > 0) {
fos.write(buffer, 0, read);
}
} while (read > -1);
fos.close();
is.close();
// recycle the domino variables
doc.recycle();
vw.recycle();
db.recycle();
att.recycle();
} catch (Exception e) {
e.printStackTrace();
}
embeddedObject.recycle(); document.recycle(); 对不起,它的.recycle();它不是..recycle(); – Sarma
嗯......当我忘记关闭InputStream时,我遇到了那些临时文件。事实上,我向IBM提交了一份报告,因为那时文档从未提及关闭流的要求。现在确实如此。实际上,文档现在包含了我向IBM建议的确切语言。所以这很神秘。如果这是一个普遍可重现的情况,那将是一个严重的错误。你使用的是什么版本的Notes或Domino? –
感谢您的回复,我正在使用Lotus Notes 8. – Sarma