簡體   English   中英

如何在ProcessBuilder中將文件內容作為參數傳遞

[英]How to pass the contents of a file as parameters in ProcessBuilder

我想將.dat文件的內容作為參數傳遞給ProcessBuilder 我該怎么做呢?

.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");
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中設置正確的編碼。 否則,您的代碼將使用碰巧在其上運行的計算機上的任何默認值,結果的結果會不一致!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM