- 次の例は、ディレクトリ内にある通常のファイルの情報を取得します。情報の取得は、各ファイルをストリームとして開いて行います。エージェントは、ファイルごとに同じ NotesStream オブジェクトを開いたり閉じたりして再利用します。
import lotus.domino.*;
import java.io.File;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Stream stream = session.createStream();
int bytes = 0;
File directory = new File("C:¥¥StreamFiles");
String[] files = directory.list();
for (int i = 0; i < files.length; i++) {
if (stream.open(directory + "¥¥" + files[i])) {
bytes = bytes + stream.getBytes();
stream.close();
}
else
throw new NotesException
(NotesError.NOTES_ERR_FILEOPEN_FAILED, "Open failed");
}
System.out.println("Number of files = " + files.length);
System.out.println("Total bytes = " + bytes);
} catch(NotesException e) {
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
}
}
}
- 次のエージェントは、読み込みのためにファイルをストリームとして開きます。
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
String inPath = "c:¥¥StreamFiles¥¥readme.txt";
// Get the input file
Stream inStream = session.createStream();
if (inStream.open(inPath, "ASCII")) {
if (inStream.getBytes() > 0) {
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
doc.replaceItemValue("Form", "Main Topic");
doc.replaceItemValue("Subject", inPath);
doc.replaceItemValue("Body", inStream.readText());
inStream.close();
doc.save(true, true);
}
else
System.out.println("Input file has no content");
}
else
System.out.println("Input file open failed");
} catch(NotesException e) {
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
}
}
}
- 次のエージェントは、書き込みのためにファイルを開きます。
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
// Get the input file
DocumentCollection dc = agentContext.getUnprocessedDocuments();
Document doc = dc.getFirstDocument();
String outPath =
"c:¥¥StreamFiles¥¥" + doc.getItemValueString("Subject") + ".txt";
Stream outStream = session.createStream();
if (outStream.open(outPath, "ASCII")) {
if (outStream.getBytes() == 0) {
outStream.writeText(doc.getItemValueString("Body"));
outStream.close();
}
else
System.out.println("Output file exists and has content");
}
else
System.out.println("Output file open failed");
} catch(NotesException e) {
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
}
}
}