1

ProcessBuilderのパラメーターとして .dat ファイルの内容を渡したいです。どうすればいいですか?

.dat ファイルには以下が含まれます。

08/10/12 4546.4 4644.5 6465.4 3 6.546 core dia,WH,C/C,no of steps,SF 0054.0 0005.0 005.00 0006.0 0006.0 066.00 0006.0 0006.0 006.00 leg width,yoke width,1/2 section step thk-Biggest size

次のコードでファイルの内容をパラメーターとして渡したい

 ProcessBuilder processBuilder = new ProcessBuilder("E:\\MyFile.exe");
4

1 に答える 1

1
FileReader r = null;
try {
    r = new FileReader(pathToDatFile);
    char[] buf = new char[50000]; // Or whatever is a good max length.
    int len = r.read(buf);
    String content = new String(buf, 0, len);
    String[] params = content.split(" ");
    ArrayList<String> invocation = new ArrayList<String>();
    invocation.add("E:\\MyFile.exe");
    invocation.addAll(Arrays.asList(params));
    ProcessBuilder processBuilder = new ProcessBuilder(invocation);
} catch (Exception e) {
    // handle me!
} finally {
   try { r.close(); } catch (Exception e) { /* handle me! */ }
}

また、.dat ファイルのエンコードは何ですか? ASCII でない場合は、FileInputStream -> InputStreamReader を経由して、InputStreamReader で正しいエンコーディングを設定できるようにする必要があります。そうしないと、コードがたまたま実行されているコンピューターのデフォルトが何であれ、コードはそれを使用することになり、おもしろいほど一貫性のない結果が得られます!

于 2012-10-08T11:25:49.493 に答える