3

私はProcessBuilderにある程度精通しており、ストリームを処理します。今、私が自動化しているプロセスが、提供する必要のある2つのファイルからいくつかの情報を読み取るという問題に遭遇しました。現在、私はファイルを作成しており、ProcessBuilderを介してプログラムへのパスを提供しています。近い将来、何百万もの実行が予想されるので、ファイルの読み取りと書き込みではなく、すべての作業をメモリ内で実行することにより、処理を高速化したいと思います。

基本的に、私ができる必要があるのは、自動化されたプログラムからファイルを開く要求をキャプチャし、文字列ストリームなどから期待されるデータを提供することです。もちろん、ProcessBuilderに、私が提供しているファイルパスが、さらに優れたストリームに置き換えられることをなんとかして伝えることができれば。

どうすればこれを達成できますか?

4

1 に答える 1

0

そのようなI/Oアクセスをインターセプトおよび変更できるProcessへのインターフェイスはありません。実行を自動化しようとしているプログラムのソースコードがない限り、ほとんどの場合、OSレベルで実行する必要があります。

ただし、 RAMディスクを作成することで実現できます。たとえばLinuxを使用している場合、それほど複雑ではありません。このリンクを見てください:Linux RAMディスク:RAMでのファイルシステムの作成

もう1つの方法は、Javaプログラムに名前付きパイプを作成させ、これらを自動プログラムへのパスとして渡すことだと思います。

于 2011-01-30T08:47:59.003 に答える