私のアプリケーション (DataSync) は、ルートのみがアクセスできるファイルを読み書きする必要があるため、シェルを使用してこれらのファイルを操作することに制限されています。現在、アクセスしたいファイルをキャッシュ ディレクトリにコピーしています。その後、Java コードからキャッシュ ファイルへの入力ストリームまたは出力ストリームを作成できます。ファイルの書き込みも同じように行われます (ただし、その逆です)。
このファイルのキャッシュには比較的時間がかかるため、キャッシュ ディレクトリを必要とせずにこれらのファイルを直接読み書きしたいと考えています。私は基本的に、プロセスの入力ストリームと出力ストリームを使用して、次のようにファイルの読み取りまたは書き込みを試みています。
Process p = Runtime.getRuntime().exec("su");
OutputStream out = p.getOutputStream();
InputStream in = p.getInputStream();
// Write open file command to outputstream
// Read file contents from inputStream
out.close();
in.close();
プロセスからファイルを開き、それを stdout に送信して、Java アプリケーションがそのファイルを読み取れるようにする必要があります (同様の書き込みも可能です)。しかし、私は Linux にあまり詳しくないので、どこから始めればよいかわかりません。誰かが私を正しい方向に向けることができますか?
ありがとう、クイント。