Передача "виртуального" файла процессу в Java

Можно ли создать "виртуальный" файл в Java и передать его в качестве параметра Process/ProcessBuilder?

Допустим, я хочу вызвать внешний.exe-файл (Windows) с параметром arg, arg должен быть файл на жестком диске. Рассмотрим следующий код в качестве примера:

Process p = Runtime.getRuntime().exec("someProgram.exe -file " + arg)

Итак, возможно ли создать arg как "виртуальный" файл и передать его таким способом во внешний процесс в Java? Если да, то как я могу это реализовать? Сначала я бы предпочел не записывать файл на жесткий диск, так как ввод-вывод с жесткого диска довольно медленный.

1 ответ

Решение

Если у вас уже есть данные, и внешний процесс может принимать данные из стандартного ввода, вы можете передавать данные непосредственно в процесс, полностью пропуская запись файла.

Вы можете получить входной поток из Process и посмотреть на Pipe[Input|Output]Stream в Java, чтобы связать все это вместе.

Другие вопросы по тегам