Я не уверен на 100% по этому поводу, но я взглянул на исходный код Ant, и он просто выполняет readLine ():
Из /org/apache/tools/ant/input/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, как описано в документации . Лицензия Apache позволяет вам в основном копировать и вставлять приведенный выше код в качестве отправной точки.
- Если вы используете Ant 1.6 или более раннюю версию, просто создайте свою собственную задачу MultiLineInput. Вы можете расширить существующий класс Input и просто прочитать несколько строк.
В любом случае вам нужно будет решить, как пользователь указывает «Я закончил». Вы можете использовать пустую строку или точку или что-то еще.
Удачи!
P.S. Когда я выполнил поиск в Google по запросу «многострочный ввод муравья», эта страница стала первым хитом :-). Впечатляет вопрос, который был задан менее часа назад.