Java ProcessBuilder, как захватить запрос на чтение файла из процесса и предоставить как поток? - PullRequest
3 голосов
/ 30 января 2011

Я немного знаком с ProcessBuilder и обрабатываю потоки.Теперь я столкнулся с проблемой, что процесс, который я автоматизирую, считывает некоторую информацию из двух файлов, которые мне нужно предоставить.В настоящее время я пишу файлы и указываю пути к программе через ProcessBuilder.Так как в ближайшем будущем я ожидаю миллионы прогонов, я бы хотел ускорить процесс, выполняя всю работу в памяти, а не читая и записывая в файл.do захватывает запрос на открытие файла из автоматизированной программы и предоставляет ожидаемые данные из потока строк или чего-то подобного.Конечно, если бы я мог как-то сказать ProcessBuilder, что пути к файлам, которые я даю, будут заменены потоками, которые были бы еще лучше.

Как мне этого добиться?

1 Ответ

0 голосов
/ 30 января 2011

Нет интерфейса с Process, который позволял бы вам перехватывать и изменять доступ к вводу / выводу таким образом. Если у вас нет исходного кода для программы, выполнение которой вы пытаетесь автоматизировать, вам, скорее всего, придется делать это на уровне ОС.

Этого можно достичь, создав RAM-диск . Например, если вы работаете в Linux, это не так сложно. Взгляните на эту ссылку: Диск Linux RAM: Создание файловой системы в ОЗУ .

Я полагаю, что другой альтернативой было бы позволить вашей Java-программе создать именованный канал и передать их как пути к автоматической программе.

...