我不是100%肯定態度,但我看了看螞蟻的源代碼,它只是做了的readLine():
從/組織/阿帕奇/工具/ ANT /輸入/ DefaultInputHandler.java:
/**
* Prompts and requests input. May loop until a valid input has
* been entered.
* @param request the request to handle
* @throws BuildException if not possible to read from console
*/
public void handleInput(InputRequest request) throws BuildException {
String prompt = getPrompt(request);
BufferedReader r = null;
try {
r = new BufferedReader(new InputStreamReader(getInputStream()));
do {
System.err.println(prompt);
System.err.flush();
try {
String input = r.readLine();
request.setInput(input);
} catch (IOException e) {
throw new BuildException("Failed to read input from"
+ " Console.", e);
}
} while (!request.isInputValid());
} finally {
if (r != null) {
try {
r.close();
} catch (IOException e) {
throw new BuildException("Failed to close input.", e);
}
}
}
}
這裏是如果我是你,我會做什麼:
- 如果您使用Ant 1.7,然後嘗試實現自己的InputHandler,如documentation描述。 Apache許可證允許您基本上覆制並粘貼上述代碼作爲起點。
- 如果您使用的是Ant 1.6或更早版本,那麼只需創建您自己的MultiLineInput任務。您可以擴展現有的Input類並只讀多行。
無論哪種情況,您都需要決定用戶如何表示「我完成了」。您可以使用空白行或句點或其他內容。
祝你好運!
P.S.當我做了一個「螞蟻多行輸入」的谷歌搜索,這個頁面是第一次擊中:-)。對於不到一個小時前問過的問題來說,這是相當不錯的。
感謝您的源代碼。 – 2009-04-09 21:01:34