У меня есть небольшая Java-программа, которая принимает аргументы из командной строки и должна быть интерактивной.
Когда я хочу протестировать с большим вводом, я хочу передать содержимое файла в JVM для использования в качестве входных аргументов для программы, но я не хочу заменять stdin содержимым файла.
Так я попробовал
меньше файлов | xargs -0 java -cp ... mypackage.ИмяКласса
но это заменяет стандартный ввод содержимым файла, я думаю, поэтому интерактивная часть программы, которая использует BufferedReader.readLine(), берет свое содержимое из файла.
Есть ли способ, которым я могу сначала передать содержимое файла в JVM, а затем переключиться обратно на StdIn?
Я бегу Ubunthu
Пример кода:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String cmd;
while(true) {
try {
System.out.print(">");
cmd = br.readLine(); //becomes null if I start the program as above
Ps. Было бы лучше, если бы java-программа работала с файлами, но я хочу знать, возможно ли это, Ds.